├── .gitignore ├── Avalonia.ExampleApp ├── Assets │ ├── Web.png │ ├── avalonia-logo.ico │ ├── openfolderHS.png │ ├── HamburgerMenu │ │ ├── home-black.png │ │ ├── home-white.png │ │ ├── list-black.png │ │ ├── list-white.png │ │ ├── person-black.png │ │ ├── person-white.png │ │ ├── search-black.png │ │ ├── search-white.png │ │ ├── favorite-black.png │ │ └── favorite-white.png │ └── AlignTableCellMiddleCenterHS.png ├── Properties │ └── launchSettings.json ├── Model │ ├── PropertyGrid_ComplexProperty │ │ ├── Female.cs │ │ ├── Male.cs │ │ └── Human.cs │ ├── PropertyGrid_CustomTypeEditors │ │ ├── VideoDevices.cs │ │ ├── LocalResources.cs │ │ ├── Editors │ │ │ └── PointDisplayMember.cs │ │ └── ComplexProperty.cs │ ├── FontList.cs │ ├── FontSizeList.cs │ ├── FolderItem.cs │ ├── PropertyGrid_BrushCategory │ │ ├── BrushList.cs │ │ ├── BrushResource.cs │ │ └── MultiBrushObject1.cs │ ├── XmlLanguageList.cs │ ├── Artist.cs │ ├── PropertyGrid_ExtendedEditor │ │ └── ViewModel.cs │ └── Genre.cs ├── ViewModels │ └── ViewModelBase.cs ├── nuget.config ├── Views │ ├── Sliders.axaml.cs │ ├── CroppingDemoView.axaml.cs │ ├── WizardView.axaml.cs │ ├── ColorExample.axaml.cs │ ├── DataGridView.axaml.cs │ ├── DateExamples.axaml.cs │ ├── GroupBoxView.axaml.cs │ ├── TilesExample.axaml.cs │ ├── OutlookBarView.axaml.cs │ ├── PaginationView.axaml.cs │ ├── RangeSliderDemoView.axaml.cs │ ├── ListControlsView.axaml.cs │ ├── ProgressControls.axaml.cs │ ├── HamburgerMenuView.axaml.cs │ ├── TagControlExample.axaml.cs │ ├── WizardWithCloseView.axaml.cs │ ├── MainWindowContentView.axaml.cs │ ├── ColorPickerExampleView.axaml.cs │ ├── RatingControlExampleView.axaml.cs │ ├── HamburgerMenuViews │ │ ├── HamburgerMenuHomeView.axaml.cs │ │ ├── HamburgerMenuLikeView.axaml.cs │ │ ├── HamburgerMenuListView.axaml.cs │ │ ├── HamburgerMenuSearchView.axaml.cs │ │ ├── HamburgerMenuProfileView.axaml.cs │ │ ├── HamburgerMenuHomeView.axaml │ │ ├── HamburgerMenuLikeView.axaml │ │ ├── HamburgerMenuListView.axaml │ │ ├── HamburgerMenuProfileView.axaml │ │ └── HamburgerMenuSearchView.axaml │ ├── PropertyGridExampleViews │ │ ├── PropertyGridExample_CategoryEditor.axaml.cs │ │ ├── PropertyGridExample_ExtendedEditor.axaml.cs │ │ ├── PropertyGridExample_ComplexProperty.axaml.cs │ │ ├── PropertyGridExample_DialogEditor.axaml.cs │ │ ├── PropertyGridExample_ProxyExample.axaml.cs │ │ ├── PropertyGridExample_ComplexProperty.axaml │ │ └── PropertyGridExample_BrushCategory.axaml.cs │ ├── TabControlExample.axaml.cs │ ├── StepBarView.axaml.cs │ ├── PropertyGridExamples.axaml.cs │ ├── ResizeRotateControlDemoView.axaml.cs │ ├── ButtonView.axaml.cs │ ├── WizardWithCloseView.axaml │ ├── ChildWindows │ │ └── TestChildWindow.axaml.cs │ ├── TreeViewExample.axaml.cs │ ├── SplitViewExamples.axaml.cs │ └── ExplorerBarView.axaml.cs ├── Window │ ├── TestMainWindow.axaml.cs │ └── MainWindow.axaml.cs ├── Converters │ ├── EmptyValueConverter.cs │ ├── FontStyleConverter.cs │ └── FontWeightConverter.cs ├── Behaviors │ └── CommandSelectedChangedBehavior.cs ├── AppTesting.axaml └── App.axaml.cs ├── ExternalDependencies ├── FontAwesome.Avalonia.dll ├── FontAwesome.Avalonia.pdb ├── FontAwesome.Generate.dll └── FontAwesome.Generate.pdb ├── github └── Images │ ├── Avalonia.ExampleApp-Overview.gif │ └── Avalonia.ExampleApp-ButtonView.png ├── Avalonia.ExtendedToolkit ├── Assets │ └── ColorSwatchCircle.png ├── Controls │ ├── ChildWindow │ │ ├── OverlayFillBehavior.cs │ │ ├── ValueConverter │ │ │ └── EnumToIsVisibileConverter.cs │ │ ├── MessageBoxImage.cs │ │ └── CloseReason.cs │ ├── IndexListControl │ │ └── Model │ │ │ └── IndexItemModels.cs │ ├── Notification │ │ ├── ContentLocation.cs │ │ ├── Interfaces │ │ │ ├── INotificationMessageFactory.cs │ │ │ ├── INotificationMessageButton.cs │ │ │ └── INotificationAnimation.cs │ │ ├── NotificationMessageFactory.cs │ │ └── Events │ │ │ └── NotificationMessageManagerEventArgs.cs │ ├── WindowCommands │ │ ├── WindowCommandTheme.cs │ │ ├── ClosingWindowEventArgs.cs │ │ └── WindowCommandsOverlayBehavior.cs │ ├── OutlookBar │ │ ├── ExpandPosition.cs │ │ └── OverflowMenuCreatedEventArgs.cs │ ├── Panels │ │ └── IndexingStackPanel │ │ │ ├── IndexOddEven.cs │ │ │ ├── SelectionLocation.cs │ │ │ └── StackLocation.cs │ ├── MetroHeader.cs │ ├── ColorPicker │ │ ├── ColorRoutedEventArgs.cs │ │ └── CustomColors.cs │ ├── Image │ │ └── MultiFrameImageMode.cs │ ├── StepBar │ │ └── StepStatus.cs │ ├── PropertyGrid │ │ ├── Controls │ │ │ └── SearchMode.cs │ │ ├── Design │ │ │ ├── CategorizedLayout.cs │ │ │ ├── AlphabeticalLayout.cs │ │ │ ├── CategoryItemsLayout.cs │ │ │ ├── CategoryEditorContentPresenter.cs │ │ │ ├── PropertyItemsLayout.cs │ │ │ ├── PropertyEditorContentPresenter.cs │ │ │ ├── GridEntryLayout.cs │ │ │ ├── CategoryContainer.cs │ │ │ ├── PropertyContainer.cs │ │ │ └── PropertyNameTextBlock.cs │ │ ├── PropertyEditing │ │ │ ├── ValueExceptionSource.cs │ │ │ ├── Filters │ │ │ │ ├── PropertyFilterAppliedEventArgs.cs │ │ │ │ └── IPropertyFilterTarget.cs │ │ │ ├── PropertyEditingEventArgs.cs │ │ │ └── NamedColorList.cs │ │ ├── PropertyTypes │ │ │ └── PropertyDisplayMode.cs │ │ ├── Metadata │ │ │ ├── NumberRangeType.cs │ │ │ ├── PropertyOrderAttribute.cs │ │ │ └── CategoryOrderAttribute.cs │ │ ├── Converters │ │ │ └── MultiBooleanToIsVisibleConverter.cs │ │ └── Utils │ │ │ └── ResourceLocator.cs │ ├── Wizard │ │ ├── WizardPageType.cs │ │ ├── WizardPageVMConverter.cs │ │ ├── IWizardPage.cs │ │ ├── WizardItemsConverter.cs │ │ └── ViewModel │ │ │ └── Interface │ │ │ └── IWizardPageVM.cs │ ├── BreadcrumbBar │ │ ├── ConversionMode.cs │ │ ├── ButtonMode.cs │ │ └── BreadcrumbItemEventArgs.cs │ ├── ResizeRotateControl │ │ ├── RotatedEventArgs.cs │ │ ├── Converter │ │ │ └── DoubleFormatConverter.cs │ │ ├── SizeChrome.cs │ │ └── PositionChangedEventArgs.cs │ ├── SplitView │ │ ├── SplitViewPaneClosingEventArgs.cs │ │ └── SplitViewPanePlacement.cs │ ├── Flyout │ │ ├── FlyoutVisualState.cs │ │ ├── FlyoutStatusChangedRoutedEventArgs.cs │ │ └── FlyoutTheme.cs │ ├── MetroContentControl │ │ └── MetroContentControlState.cs │ ├── MetroWindow │ │ └── OverlayBehavior.cs │ ├── Buttons │ │ ├── DropDownButton │ │ │ └── DropDownButtonContentDisplayMode.cs │ │ └── SquareButton.cs │ ├── MetroThumb │ │ └── IMetroThumb.cs │ ├── ExplorerBar │ │ └── ExplorerBar.cs │ ├── Badged │ │ └── BadgePlacementMode.cs │ └── BusyIndicator │ │ └── ProgressBarWidthConverter.cs ├── Styles │ ├── Skins │ │ ├── BlackSkin.axaml │ │ ├── BlueSkin.axaml │ │ ├── Win7Skin.axaml │ │ ├── MahAppsSkin.axaml │ │ └── SilverSkin.axaml │ ├── Generic.All.axaml │ ├── ExtendedControls │ │ ├── ResizeRotateControl │ │ │ └── ResizeRotateChrome.axaml │ │ ├── PropertyGrid │ │ │ ├── Design │ │ │ │ ├── CategoryEditorContentPresenter.axaml │ │ │ │ ├── PropertyEditorContentPresenter.axaml │ │ │ │ ├── CategorizedLayout.axaml │ │ │ │ ├── AlphabeticalLayout.axaml │ │ │ │ ├── PropertyItemsLayout.axaml │ │ │ │ └── CategoryItemsLayout.axaml │ │ │ └── Editor │ │ │ │ ├── TypeEditor.axaml │ │ │ │ └── DoubleEditor.axaml │ │ ├── HamburgerMenu │ │ │ └── ListBoxStyle.axaml │ │ ├── Panels │ │ │ ├── RegularItemsControl.axaml │ │ │ └── SimpleItemsControl.axaml │ │ ├── ChildWindow │ │ │ └── Icons.axaml │ │ └── FlyoutsControl.axaml │ └── DefaultControls │ │ ├── DataGrid │ │ └── Default │ │ │ ├── Controls.DataGridRowHeader.axaml │ │ │ └── Controls.DataGrid.Settings.axaml │ │ ├── Controls.ContentControl.axaml │ │ ├── Controls.ComboBox.axaml │ │ ├── Controls.Thumb.axaml │ │ ├── Controls.TextBlock.axaml │ │ └── Controls.ProgressBar.axaml ├── ComonTypes │ ├── Types │ │ ├── FipType.cs │ │ ├── RotateType.cs │ │ └── CroppingType.cs │ ├── ResizeMode.cs │ ├── Font │ │ └── FontWeightExtensions.cs │ ├── CharacterCasing.cs │ ├── MouseWheelChange.cs │ ├── Position.cs │ ├── UnderlinedType.cs │ ├── ThicknessSideType.cs │ ├── ItemVM.cs │ ├── IAddChild.cs │ ├── FlowDirection.cs │ ├── ICommandSource.cs │ └── TransitionType.cs ├── EventArgs │ └── RoutedEventArgsOfT.cs ├── SkinManager │ ├── OnSkinChangedEventArgs.cs │ ├── SkinType.cs │ ├── SkinExtensions.cs │ └── Skin.cs ├── ThemeManager │ ├── OnThemeChangedEventArgs.cs │ ├── ThemeManager.StyleKeys.cs │ └── ColorScheme.cs ├── Converters │ ├── NullToBoolConverter.cs │ ├── EqualToBoolConverter.cs │ ├── ColorToSolidColorBrushConverter.cs │ └── IsAddTagButtonVisibleConveter.cs ├── HelperControls │ ├── KeyFrameExt.cs │ ├── VisualBrushExt.cs │ ├── ScaleTransformEx.cs │ ├── TranslateTransformExt.cs │ ├── RowDefinitionExt.cs │ ├── RectangleGeometryExt.cs │ └── ColumnDefinitionExt.cs ├── Properties │ └── AssemblyInfo.cs ├── Helper │ ├── VectorExtension.cs │ ├── GroupBoxHelper.cs │ └── ScrollViewerHelper.cs ├── Extensions │ ├── AppBuilderExtensions.cs │ ├── FontFamilyExtensions.cs │ ├── IEnumerableExtension.cs │ └── InvalidateThemeChnagedExtension.cs └── TriggerExtensions │ └── TriggerActionOfT.cs ├── Avalonia.Controlz ├── Styles │ └── Generic.axaml └── Controls │ ├── StatusBar │ └── StatusBarItem.cs │ ├── Slider │ ├── DoubleCollection.cs │ ├── TickPlacement.cs │ └── AutoToolTipPlacement.cs │ ├── GroupBox │ └── GroupBox.cs │ └── TickBar │ └── TickBarPlacement.cs ├── nuget.config ├── Directory.build.props ├── .github └── PULL_REQUEST_TEMPLATE.md ├── LICENSE ├── .vscode ├── launch.json └── tasks.json ├── azure-pipelines.yml └── Avalonia.ExtendedToolkit.Tests └── Controls └── BadgedTest.cs /.gitignore: -------------------------------------------------------------------------------- 1 | .vs* 2 | *.user 3 | bin 4 | obj 5 | Packages 6 | TestResults 7 | coverage.xml 8 | coverage 9 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/Web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/Web.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/avalonia-logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/avalonia-logo.ico -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/openfolderHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/openfolderHS.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Avalonia.ExampleApp": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /ExternalDependencies/FontAwesome.Avalonia.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/ExternalDependencies/FontAwesome.Avalonia.dll -------------------------------------------------------------------------------- /ExternalDependencies/FontAwesome.Avalonia.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/ExternalDependencies/FontAwesome.Avalonia.pdb -------------------------------------------------------------------------------- /ExternalDependencies/FontAwesome.Generate.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/ExternalDependencies/FontAwesome.Generate.dll -------------------------------------------------------------------------------- /ExternalDependencies/FontAwesome.Generate.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/ExternalDependencies/FontAwesome.Generate.pdb -------------------------------------------------------------------------------- /github/Images/Avalonia.ExampleApp-Overview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/github/Images/Avalonia.ExampleApp-Overview.gif -------------------------------------------------------------------------------- /github/Images/Avalonia.ExampleApp-ButtonView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/github/Images/Avalonia.ExampleApp-ButtonView.png -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Assets/ColorSwatchCircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExtendedToolkit/Assets/ColorSwatchCircle.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/home-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/home-black.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/home-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/home-white.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/list-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/list-black.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/list-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/list-white.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/person-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/person-black.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/person-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/person-white.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/search-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/search-black.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/search-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/search-white.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/AlignTableCellMiddleCenterHS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/AlignTableCellMiddleCenterHS.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/favorite-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/favorite-black.png -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Assets/HamburgerMenu/favorite-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExampleApp/Assets/HamburgerMenu/favorite-white.png -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/ChildWindow/OverlayFillBehavior.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExtendedToolkit/Controls/ChildWindow/OverlayFillBehavior.cs -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/Skins/BlackSkin.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/Skins/BlueSkin.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/Skins/Win7Skin.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/Skins/MahAppsSkin.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/Skins/SilverSkin.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/ChildWindow/ValueConverter/EnumToIsVisibileConverter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mameolan/Avalonia.ExtendedToolkit/HEAD/Avalonia.ExtendedToolkit/Controls/ChildWindow/ValueConverter/EnumToIsVisibileConverter.cs -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/PropertyGrid_ComplexProperty/Female.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Avalonia.ExampleApp.Model 6 | { 7 | public class Female : Human 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Avalonia.Controlz/Styles/Generic.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/Types/FipType.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit 2 | { 3 | /// 4 | /// flipmode of the image 5 | /// 6 | public enum FipType 7 | { 8 | Vertical, 9 | Horizontal 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/Generic.All.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/ViewModels/ViewModelBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using ReactiveUI; 5 | 6 | namespace Avalonia.ExampleApp.ViewModels 7 | { 8 | public class ViewModelBase : ReactiveObject 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/Types/RotateType.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit 2 | { 3 | /// 4 | /// roatetype of the image 5 | /// 6 | public enum RotateType 7 | { 8 | RightHandedRotation, 9 | LeftHandedRotation 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Avalonia.Controlz/Controls/StatusBar/StatusBarItem.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | 3 | namespace Avalonia.Controlz.Controls 4 | { 5 | /// 6 | /// status bar 7 | /// 8 | public class StatusBarItem : ContentControl 9 | { 10 | #warning finish implementation 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/Types/CroppingType.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit 2 | { 3 | /// 4 | /// types which use a rectangle or a cricle/ellipse for cropping 5 | /// 6 | public enum CroppingType 7 | { 8 | Circle, 9 | Rectangle 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /nuget.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/ExtendedControls/ResizeRotateControl/ResizeRotateChrome.axaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/IndexListControl/Model/IndexItemModels.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Avalonia.ExtendedToolkit.Controls 4 | { 5 | /// 6 | /// a collection of 7 | /// 8 | public class IndexItemModels : List 9 | { 10 | } 11 | } -------------------------------------------------------------------------------- /Avalonia.ExampleApp/nuget.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/PropertyGrid_CustomTypeEditors/VideoDevices.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Avalonia.ExampleApp.Model 4 | { 5 | public enum VideoDevices 6 | { 7 | UNSPECIFIED, 8 | 9 | [Description("Microsoft VX 6000")] 10 | MICROSOFT_VX_6000, 11 | 12 | [Description("Logitech Pro 5000")] 13 | LOGITECH_PRO_5000 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/FontList.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Avalonia.ExtendedToolkit.Extensions; 3 | using Avalonia.Media; 4 | 5 | namespace Avalonia.ExampleApp.Model 6 | { 7 | public class FontList : ObservableCollection 8 | { 9 | public FontList() 10 | { 11 | FontFamilyExtensions.InstalledFontFamilies.ForEach(x=> this.Add(x)); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Notification/ContentLocation.cs: -------------------------------------------------------------------------------- 1 | //ported from https://github.com/Enterwell/Wpf.Notifications 2 | 3 | namespace Avalonia.ExtendedToolkit.Controls 4 | { 5 | /// 6 | /// The additional content location. 7 | /// 8 | public enum ContentLocation 9 | { 10 | Top, 11 | Bottom, 12 | Left, 13 | Right, 14 | Main, 15 | AboveBadge 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/Sliders.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class Sliders : UserControl 8 | { 9 | public Sliders() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/CroppingDemoView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | using Avalonia.Markup.Xaml; 3 | 4 | namespace Avalonia.ExampleApp.Views 5 | { 6 | public partial class CroppingDemoView : UserControl 7 | { 8 | public CroppingDemoView() 9 | { 10 | InitializeComponent(); 11 | } 12 | 13 | private void InitializeComponent() 14 | { 15 | AvaloniaXamlLoader.Load(this); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/WizardView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class WizardView : UserControl 8 | { 9 | public WizardView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/ColorExample.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class ColorExample : UserControl 8 | { 9 | public ColorExample() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/DataGridView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class DataGridView : UserControl 8 | { 9 | public DataGridView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/DateExamples.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class DateExamples : UserControl 8 | { 9 | public DateExamples() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/GroupBoxView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class GroupBoxView : UserControl 8 | { 9 | public GroupBoxView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/TilesExample.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class TilesExample : UserControl 8 | { 9 | public TilesExample() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/OutlookBarView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class OutlookBarView : UserControl 8 | { 9 | public OutlookBarView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/PaginationView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class PaginationView : UserControl 8 | { 9 | public PaginationView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/RangeSliderDemoView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | using Avalonia.Markup.Xaml; 3 | 4 | namespace Avalonia.ExampleApp.Views 5 | { 6 | public partial class RangeSliderDemoView : UserControl 7 | { 8 | public RangeSliderDemoView() 9 | { 10 | InitializeComponent(); 11 | } 12 | 13 | private void InitializeComponent() 14 | { 15 | AvaloniaXamlLoader.Load(this); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/ListControlsView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class ListControlsView : UserControl 8 | { 9 | public ListControlsView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/ProgressControls.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class ProgressControls : UserControl 8 | { 9 | public ProgressControls() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class HamburgerMenuView : UserControl 8 | { 9 | public HamburgerMenuView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/TagControlExample.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class TagControlExample : UserControl 8 | { 9 | public TagControlExample() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/WindowCommands/WindowCommandTheme.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | /// 4 | /// An Enum representing different themes for window commands. 5 | /// 6 | public enum WindowCommandTheme 7 | { 8 | /// 9 | /// light theme 10 | /// 11 | Light, 12 | /// 13 | /// dark theme 14 | /// 15 | Dark 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/WizardWithCloseView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class WizardWithCloseView : UserControl 8 | { 9 | public WizardWithCloseView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/MainWindowContentView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class MainWindowContentView : UserControl 8 | { 9 | public MainWindowContentView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/ColorPickerExampleView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class ColorPickerExampleView : UserControl 8 | { 9 | public ColorPickerExampleView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/OutlookBar/ExpandPosition.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/jogibear9988/OdysseyWPF.git 4 | 5 | /// 6 | /// exand position 7 | /// 8 | public enum ExpandPosition 9 | { 10 | /// 11 | /// left 12 | /// 13 | Left, 14 | 15 | /// 16 | /// right 17 | /// 18 | Right 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/RatingControlExampleView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class RatingControlExampleView : UserControl 8 | { 9 | public RatingControlExampleView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuHomeView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class HamburgerMenuHomeView : UserControl 8 | { 9 | public HamburgerMenuHomeView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuLikeView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class HamburgerMenuLikeView : UserControl 8 | { 9 | public HamburgerMenuLikeView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuListView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class HamburgerMenuListView : UserControl 8 | { 9 | public HamburgerMenuListView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/PropertyGrid_CustomTypeEditors/LocalResources.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExampleApp.Model 2 | { 3 | public static class LocalResources 4 | { 5 | public static readonly string FileBrowserEditorKey = "FileBrowserEditorKey"; 6 | public static readonly string PercentEditorKey = "PercentEditorKey"; 7 | public static readonly string XmlLanguageEditorKey = "XmlLanguageEditorKey"; 8 | 9 | public static readonly string FilePathPickerEditorKey = "FilePathPickerEditor"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuSearchView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class HamburgerMenuSearchView : UserControl 8 | { 9 | public HamburgerMenuSearchView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuProfileView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class HamburgerMenuProfileView : UserControl 8 | { 9 | public HamburgerMenuProfileView() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Window/TestMainWindow.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.ExtendedToolkit.Controls; 4 | using Avalonia.Markup.Xaml; 5 | 6 | namespace Avalonia.ExampleApp.Views 7 | { 8 | public class TestMainWindow : MetroWindow 9 | { 10 | public TestMainWindow() 11 | { 12 | this.InitializeComponent(); 13 | } 14 | 15 | private void InitializeComponent() 16 | { 17 | AvaloniaXamlLoader.Load(this); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Panels/IndexingStackPanel/IndexOddEven.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls.Panels 2 | { 3 | // 4 | // ported from https://github.com/DenisVuyka/WPG 5 | // 6 | 7 | /// 8 | /// IndexOddEven type 9 | /// 10 | public enum IndexOddEven 11 | { 12 | /// 13 | /// odd 14 | /// 15 | Odd, 16 | 17 | /// 18 | /// even 19 | /// 20 | Even 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/WindowCommands/ClosingWindowEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Avalonia.ExtendedToolkit.Controls 4 | { 5 | //ported from https://github.com/MahApps/MahApps.Metro 6 | 7 | /// 8 | /// event args for closing a windo 9 | /// 10 | public class ClosingWindowEventArgs : EventArgs 11 | { 12 | /// 13 | /// flag if the opertation is cancelled 14 | /// 15 | public bool Cancelled { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/MetroHeader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia.Controlz.Controls; 3 | 4 | namespace Avalonia.ExtendedToolkit.Controls 5 | { 6 | //ported from https://github.com/MahApps/MahApps.Metro 7 | 8 | /// 9 | /// metroheader control 10 | /// 11 | public class MetroHeader : GroupBox, IStyledElement 12 | { 13 | /// 14 | /// style key of this control 15 | /// 16 | public Type StyleKey => typeof(MetroHeader); 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.Controlz/Controls/Slider/DoubleCollection.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Collections; 2 | 3 | namespace Avalonia.Controlz.Controls 4 | { 5 | /// 6 | /// avalonia collection of doubles 7 | /// 8 | public class DoubleCollection : AvaloniaList 9 | { 10 | /// 11 | /// returns an empty list 12 | /// 13 | /// 14 | public static DoubleCollection Empty() 15 | { 16 | return new DoubleCollection(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/ColorPicker/ColorRoutedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Interactivity; 2 | using Avalonia.Media; 3 | 4 | namespace Avalonia.ExtendedToolkit.Controls 5 | { 6 | /// 7 | /// routed eventargs for colors 8 | /// 9 | public class ColorRoutedEventArgs : RoutedEventArgs 10 | { 11 | public Color Color { get; private set; } 12 | 13 | public ColorRoutedEventArgs(Color color, RoutedEvent routedEvent):base(routedEvent) 14 | { 15 | Color = color; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/PropertyGridExampleViews/PropertyGridExample_CategoryEditor.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class PropertyGridExample_CategoryEditor : UserControl 8 | { 9 | public PropertyGridExample_CategoryEditor() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/PropertyGridExampleViews/PropertyGridExample_ExtendedEditor.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class PropertyGridExample_ExtendedEditor : UserControl 8 | { 9 | public PropertyGridExample_ExtendedEditor() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuHomeView.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuLikeView.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/PropertyGridExampleViews/PropertyGridExample_ComplexProperty.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.Markup.Xaml; 4 | 5 | namespace Avalonia.ExampleApp.Views 6 | { 7 | public class PropertyGridExample_ComplexProperty : UserControl 8 | { 9 | public PropertyGridExample_ComplexProperty() 10 | { 11 | this.InitializeComponent(); 12 | } 13 | 14 | private void InitializeComponent() 15 | { 16 | AvaloniaXamlLoader.Load(this); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/PropertyGrid_CustomTypeEditors/Editors/PointDisplayMember.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExampleApp.Model 2 | { 3 | /// 4 | /// Member of the Point structure. 5 | /// 6 | public enum PointDisplayMember 7 | { 8 | /// 9 | /// None 10 | /// 11 | None, 12 | 13 | /// 14 | /// X-Coordinate 15 | /// 16 | X, 17 | 18 | /// 19 | /// Y-Coordinate 20 | /// 21 | Y 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuListView.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuProfileView.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/HamburgerMenuViews/HamburgerMenuSearchView.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Image/MultiFrameImageMode.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/MahApps/MahApps.Metro 4 | 5 | /// 6 | /// MultiFrameImageMode type 7 | /// 8 | public enum MultiFrameImageMode 9 | { 10 | /// 11 | /// scale down larger frame 12 | /// 13 | ScaleDownLargerFrame, 14 | /// 15 | /// no scale smaller frame 16 | /// 17 | NoScaleSmallerFrame, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/FontSizeList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Text; 5 | 6 | namespace Avalonia.ExampleApp.Model 7 | { 8 | public class FontSizeList : ObservableCollection 9 | { 10 | public FontSizeList() 11 | { 12 | Add(8); 13 | Add(9); 14 | Add(10); 15 | Add(11); 16 | Add(12); 17 | Add(14); 18 | Add(16); 19 | Add(18); 20 | Add(20); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Window/MainWindow.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.ExtendedToolkit.Controls; 4 | using Avalonia.Markup.Xaml; 5 | 6 | namespace Avalonia.ExampleApp.Views 7 | { 8 | public partial class MainWindow : MetroWindow 9 | { 10 | public MainWindow() 11 | { 12 | InitializeComponent(); 13 | #if DEBUG 14 | this.AttachDevTools(); 15 | #endif 16 | } 17 | 18 | private void InitializeComponent() 19 | { 20 | AvaloniaXamlLoader.Load(this); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Directory.build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0.9.6 4 | mameolan and others 5 | mameolan 6 | 7 | MIT 8 | https://github.com/mameolan/Avalonia.ExtendedToolkit 9 | https://github.com/mameolan/Avalonia.ExtendedToolkit 10 | git 11 | 12 | $(Version) 13 | $(Version) 14 | 15 | 16 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/TabControlExample.axaml.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Avalonia; 3 | using Avalonia.Controls; 4 | using Avalonia.ExtendedToolkit.Controls; 5 | using Avalonia.Markup.Xaml; 6 | 7 | namespace Avalonia.ExampleApp.Views 8 | { 9 | public class TabControlExample : UserControl 10 | { 11 | 12 | public TabControlExample() 13 | { 14 | this.InitializeComponent(); 15 | } 16 | 17 | private void InitializeComponent() 18 | { 19 | AvaloniaXamlLoader.Load(this); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/FolderItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia.Media.Imaging; 3 | using Avalonia.Platform; 4 | 5 | namespace Avalonia.ExampleApp.Model 6 | { 7 | public class FolderItem 8 | { 9 | public string Folder { get; set; } 10 | public IBitmap Image { get; set; } 11 | 12 | public FolderItem() 13 | { 14 | Uri uri = new Uri("/Assets/openfolderHS.png", UriKind.Relative); 15 | 16 | var assets = AvaloniaLocator.Current.GetService(); 17 | Image= new Bitmap(assets.Open(uri)); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/WindowCommands/WindowCommandsOverlayBehavior.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Avalonia.ExtendedToolkit.Controls 4 | { 5 | /// 6 | /// WindowCommandsOverlayBehavior type 7 | /// 8 | [Flags] 9 | public enum WindowCommandsOverlayBehavior 10 | { 11 | /// 12 | /// Doesn't overlay a hidden TitleBar. 13 | /// 14 | Never = 0, 15 | 16 | /// 17 | /// Overlays a hidden TitleBar. 18 | /// 19 | HiddenTitleBar = 1 << 0 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/StepBar/StepStatus.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/HandyOrg/HandyControl 4 | 5 | /// 6 | /// status per step 7 | /// 8 | public enum StepStatus 9 | { 10 | /// 11 | /// Complete 12 | /// 13 | Complete, 14 | 15 | /// 16 | /// in progress 17 | /// 18 | UnderWay, 19 | 20 | /// 21 | /// waiting 22 | /// 23 | Waiting 24 | } 25 | } -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/PropertyGrid/Controls/SearchMode.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls.PropertyGrid.Controls 2 | { 3 | // 4 | // ported from https://github.com/DenisVuyka/WPG 5 | // 6 | 7 | /// 8 | /// Defines the search behavior of . 9 | /// 10 | public enum SearchMode 11 | { 12 | /// 13 | /// Immediatelly fire search. 14 | /// 15 | Instant, 16 | 17 | /// 18 | /// Fire search with a delay. 19 | /// 20 | Delayed, 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/PropertyGrid/Design/CategorizedLayout.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia.Controls.Primitives; 3 | 4 | namespace Avalonia.ExtendedToolkit.Controls.PropertyGrid.Design 5 | { 6 | // 7 | // ported from https://github.com/DenisVuyka/WPG 8 | // 9 | 10 | /// 11 | /// The default categorized view for properties. 12 | /// 13 | public class CategorizedLayout : TemplatedControl 14 | { 15 | /// 16 | /// style key of this control 17 | /// 18 | public Type StyleKey => typeof(CategorizedLayout); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/PropertyGrid/Design/AlphabeticalLayout.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia.Controls.Primitives; 3 | 4 | namespace Avalonia.ExtendedToolkit.Controls.PropertyGrid.Design 5 | { 6 | // 7 | // ported from https://github.com/DenisVuyka/WPG 8 | // 9 | 10 | /// 11 | /// The default alphabetical view for properties. 12 | /// 13 | public class AlphabeticalLayout : TemplatedControl 14 | { 15 | /// 16 | /// style key of this control 17 | /// 18 | public Type StyleKey => typeof(AlphabeticalLayout); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/DefaultControls/DataGrid/Default/Controls.DataGridRowHeader.axaml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 14 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/PropertyGrid_BrushCategory/BrushList.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | 3 | namespace Avalonia.ExampleApp.Model 4 | { 5 | /// 6 | /// Sample dataset for brushes. 7 | /// You should really use a custom brush editor (e.g. from Telerik) but it all depends on what your aims are, of course. 8 | /// 9 | public class BrushList : ObservableCollection 10 | { 11 | public BrushList() 12 | { 13 | Add("#FFFFFFFF"); 14 | Add("#FF000000"); 15 | Add("#FF142233"); 16 | Add("#FFABEF14"); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/PropertyGrid/Design/CategoryItemsLayout.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Avalonia.Controls; 3 | 4 | namespace Avalonia.ExtendedToolkit.Controls.PropertyGrid.Design 5 | { 6 | // 7 | // ported from https://github.com/DenisVuyka/WPG 8 | // 9 | 10 | /// 11 | /// Specifies a layout for categories. 12 | /// 13 | public class CategoryItemsLayout : ItemsControl//GridEntryLayout 14 | { 15 | /// 16 | /// style key of this control 17 | /// 18 | public Type StyleKey => typeof(CategoryItemsLayout); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Wizard/WizardPageType.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/xceedsoftware/wpftoolkit 4 | 5 | /// 6 | /// available page types 7 | /// 8 | public enum WizardPageType 9 | { 10 | /// 11 | /// empty page 12 | /// 13 | Blank, 14 | 15 | /// 16 | /// Header is on the left 17 | /// 18 | Exterior, 19 | 20 | /// 21 | /// Header is on the top 22 | /// 23 | Interior 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/EventArgs/RoutedEventArgsOfT.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Interactivity; 2 | 3 | namespace Avalonia.ExtendedToolkit 4 | { 5 | /// 6 | /// a routed event with T args 7 | /// 8 | /// 9 | public class RoutedEventArgsOfT : RoutedEventArgs 10 | { 11 | 12 | public RoutedEventArgsOfT(T info) 13 | { 14 | Info = info; 15 | } 16 | 17 | public RoutedEventArgsOfT(RoutedEvent routedEvent, IInteractive source) : base(routedEvent, source) 18 | { 19 | } 20 | 21 | 22 | public T Info { get; set; } 23 | 24 | } 25 | } -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Panels/IndexingStackPanel/SelectionLocation.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls.Panels 2 | { 3 | // 4 | // ported from https://github.com/DenisVuyka/WPG 5 | // 6 | /// 7 | /// SelectionLocation type 8 | /// 9 | public enum SelectionLocation 10 | { 11 | /// 12 | /// before 13 | /// 14 | Before, 15 | 16 | /// 17 | /// selected 18 | /// 19 | Selected, 20 | 21 | /// 22 | /// after 23 | /// 24 | After 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/PropertyGrid_BrushCategory/BrushResource.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Media; 2 | using ReactiveUI; 3 | 4 | namespace Avalonia.ExampleApp.Model 5 | { 6 | public class BrushResource : ReactiveObject 7 | { 8 | private string _key; 9 | 10 | public string Key 11 | { 12 | get { return _key; } 13 | set { this.RaiseAndSetIfChanged(ref _key, value); } 14 | } 15 | 16 | private SolidColorBrush _brush; 17 | 18 | public SolidColorBrush Brush 19 | { 20 | get { return _brush; } 21 | set { this.RaiseAndSetIfChanged(ref _brush, value); } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/StepBarView.axaml.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using Avalonia; 3 | using Avalonia.Controls; 4 | using Avalonia.ExtendedToolkit.Controls; 5 | using Avalonia.ExtendedToolkit.Extensions; 6 | using Avalonia.Interactivity; 7 | using Avalonia.Markup.Xaml; 8 | 9 | namespace Avalonia.ExampleApp.Views 10 | { 11 | public class StepBarView : UserControl 12 | { 13 | public StepBarView() 14 | { 15 | this.InitializeComponent(); 16 | } 17 | 18 | 19 | 20 | private void InitializeComponent() 21 | { 22 | AvaloniaXamlLoader.Load(this); 23 | } 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/PropertyGrid/PropertyEditing/ValueExceptionSource.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls.PropertyGrid.PropertyEditing 2 | { 3 | // 4 | // ported from https://github.com/DenisVuyka/WPG 5 | // 6 | 7 | /// 8 | /// Specifies the source of value exception 9 | /// 10 | public enum ValueExceptionSource 11 | { 12 | /// 13 | /// Exception occurred during a Get operation 14 | /// 15 | Get, 16 | 17 | /// 18 | /// Exception occurred during a Set operation 19 | /// 20 | Set 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/ResizeMode.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit 2 | { 3 | /// 4 | /// possible resizemodes 5 | /// 6 | public enum ResizeMode 7 | { 8 | /// 9 | /// do not resize 10 | /// 11 | NoResize, 12 | 13 | /// 14 | /// can minimize 15 | /// 16 | CanMinimize, 17 | 18 | /// 19 | /// can resize 20 | /// 21 | CanResize, 22 | 23 | /// 24 | /// can resize with grip 25 | /// 26 | CanResizeWithGrip 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/BreadcrumbBar/ConversionMode.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/jogibear9988/OdysseyWPF.git 4 | 5 | /// 6 | /// Specifies what property to convert. 7 | /// belongs to 8 | /// 9 | public enum ConversionMode 10 | { 11 | /// 12 | /// Convert the display path to edit path. 13 | /// 14 | DisplayToEdit, 15 | 16 | /// 17 | /// convert the edit path to display path. 18 | /// 19 | EditToDisplay, 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/SkinManager/OnSkinChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Avalonia.ExtendedToolkit 4 | { 5 | /// 6 | /// event args for the IsSkinChanged event 7 | /// 8 | public class OnSkinChangedEventArgs : EventArgs 9 | { 10 | /// 11 | /// ctor with skin parameter 12 | /// 13 | /// 14 | public OnSkinChangedEventArgs(Skin skin) 15 | { 16 | Skin = skin; 17 | } 18 | 19 | /// 20 | /// Changed skin 21 | /// 22 | public Skin Skin { get; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/PropertyGrid_ComplexProperty/Male.cs: -------------------------------------------------------------------------------- 1 | 2 | using System; 3 | using System.Collections.Generic; 4 | using System.ComponentModel; 5 | using System.Text; 6 | using ReactiveUI; 7 | 8 | namespace Avalonia.ExampleApp.Model 9 | { 10 | public class Male : Human 11 | { 12 | private Female _wife = new Female { Name = "Joan", Surname = "Doe" }; 13 | 14 | [TypeConverter(typeof(ExpandableObjectConverter))] 15 | public Female Wife 16 | { 17 | get { return _wife; } 18 | set 19 | { 20 | this.RaiseAndSetIfChanged(ref _wife, value); 21 | } 22 | } 23 | 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/PropertyGridExamples.axaml.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Avalonia; 3 | using Avalonia.Controls; 4 | using Avalonia.ExampleApp.Model; 5 | using Avalonia.ExtendedToolkit.Controls.PropertyGrid; 6 | using Avalonia.Markup.Xaml; 7 | using Avalonia.Media; 8 | 9 | namespace Avalonia.ExampleApp.Views 10 | { 11 | public class PropertyGridExamples : UserControl 12 | { 13 | public PropertyGridExamples() 14 | { 15 | this.InitializeComponent(); 16 | } 17 | 18 | private void InitializeComponent() 19 | { 20 | AvaloniaXamlLoader.Load(this); 21 | } 22 | } 23 | 24 | 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/ResizeRotateControl/RotatedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Interactivity; 2 | 3 | namespace Avalonia.ExtendedToolkit.Controls 4 | { 5 | /// 6 | /// event if the DragFinished is execute on the 7 | /// 8 | public class RotatedEventArgs : RoutedEventArgs 9 | { 10 | /// 11 | /// moved position 12 | /// 13 | /// 14 | public Vector Vector { get; set; } 15 | 16 | /// 17 | /// Angle 18 | /// 19 | /// 20 | public double Angle { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/SplitView/SplitViewPaneClosingEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/MahApps/MahApps.Metro 4 | 5 | /// 6 | /// Provides event data for the event. 7 | /// 8 | public sealed class SplitViewPaneClosingEventArgs 9 | { 10 | /// 11 | /// Gets or sets a value that indicates whether the pane closing action should be canceled. 12 | /// 13 | /// true to cancel the pane closing action; otherwise, false. 14 | public bool Cancel { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ThemeManager/OnThemeChangedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Avalonia.ExtendedToolkit 4 | { 5 | /// 6 | /// Class which is used as argument for an event to signal theme changes. 7 | /// 8 | public class OnThemeChangedEventArgs : EventArgs 9 | { 10 | /// 11 | /// Creates a new instance of this class. 12 | /// 13 | public OnThemeChangedEventArgs(Theme theme) 14 | { 15 | this.Theme = theme; 16 | } 17 | 18 | /// 19 | /// The new theme. 20 | /// 21 | public Theme Theme { get; set; } 22 | } 23 | } -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/BreadcrumbBar/ButtonMode.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/jogibear9988/OdysseyWPF.git 4 | 5 | /// 6 | /// Specifies how to display the BreadcrumbButton. 7 | /// 8 | public enum ButtonMode 9 | { 10 | /// 11 | /// Display as Breadcrumb. 12 | /// 13 | Breadcrumb, 14 | 15 | /// 16 | /// Display as overflow. 17 | /// 18 | Overflow, 19 | 20 | /// 21 | /// Display as drop down. 22 | /// 23 | DropDown 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/DefaultControls/Controls.ContentControl.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Converters/EmptyValueConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | 5 | namespace Avalonia.ExampleApp.Converters 6 | { 7 | /// 8 | /// Specialized converter for keeping bindings alive. 9 | /// 10 | public class EmptyValueConverter : IValueConverter 11 | { 12 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 13 | { 14 | return value; 15 | } 16 | 17 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 18 | { 19 | return value; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/Font/FontWeightExtensions.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Media; 2 | 3 | namespace Avalonia.ExtendedToolkit.Font 4 | { 5 | /// 6 | /// font wheight extension 7 | /// 8 | public static class FontWeightExtensions 9 | { 10 | /// 11 | /// adds 400 (?) to the font weight enum 12 | /// 13 | /// 14 | /// 15 | public static int ToOpenTypeWeight(this FontWeight fontWeight) 16 | { 17 | //realfont weight in wpf (don't know where 400 comes from not documented. ) 18 | return (int)fontWeight + 400; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Converters/NullToBoolConverter.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Data.Converters; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Globalization; 6 | using System.Text; 7 | 8 | namespace Avalonia.ExtendedToolkit.Converters 9 | { 10 | public class NullToBoolConverter : IValueConverter 11 | { 12 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 13 | { 14 | return value == null ? false : true; 15 | } 16 | 17 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 18 | { 19 | return AvaloniaProperty.UnsetValue; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/SkinManager/SkinType.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit 2 | { 3 | /// 4 | /// avaliable skin types 5 | /// 6 | public enum SkinType 7 | { 8 | /// 9 | /// OfficeBlue 10 | /// 11 | OfficeBlue, 12 | /// 13 | /// office silver 14 | /// 15 | OfficeSilver, 16 | /// 17 | /// office black 18 | /// 19 | OfficeBlack, 20 | /// 21 | /// windows 7 22 | /// 23 | Windows7, 24 | /// 25 | /// mahapp 26 | /// 27 | MahApps 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/CharacterCasing.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | // This source file is adapted from the Windows Presentation Foundation project. 4 | // (https://github.com/dotnet/wpf/) 5 | 6 | /// 7 | /// type how a text should be displayed 8 | /// 9 | public enum CharacterCasing 10 | { 11 | /// 12 | /// no upper / lower transform 13 | /// 14 | Normal, 15 | 16 | /// 17 | /// makes the text to upper 18 | /// 19 | Upper, 20 | 21 | /// 22 | /// makes the text6 lower 23 | /// 24 | Lower 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Flyout/FlyoutVisualState.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | /// 4 | /// FlyoutVisualState 5 | /// 6 | public enum FlyoutVisualState 7 | { 8 | /// 9 | /// default 10 | /// 11 | Default, 12 | /// 13 | /// hide 14 | /// 15 | Hide, 16 | /// 17 | /// show 18 | /// 19 | Show, 20 | /// 21 | /// hide direct 22 | /// 23 | HideDirect, 24 | /// 25 | /// showdirect 26 | /// 27 | ShowDirect 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Converters/EqualToBoolConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using Avalonia.Data.Converters; 4 | 5 | namespace Avalonia.ExtendedToolkit.Converters 6 | { 7 | public class EqualToBoolConverter : IValueConverter 8 | { 9 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 10 | { 11 | object left = value; 12 | object right = parameter; 13 | 14 | return left?.Equals(right) == true; 15 | } 16 | 17 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 18 | { 19 | return AvaloniaProperty.UnsetValue; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/MouseWheelChange.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls.Primitives; 2 | 3 | namespace Avalonia.ExtendedToolkit.Controls 4 | { 5 | /// 6 | /// types for the see 7 | /// 8 | public enum MouseWheelChange 9 | { 10 | /// 11 | /// Change the value of the slider if the user rotates the mouse wheel by the value defined for 12 | /// 13 | SmallChange, 14 | 15 | /// 16 | /// Change the value of the slider if the user rotates the mouse wheel by the value defined for 17 | /// 18 | LargeChange 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/DefaultControls/DataGrid/Default/Controls.DataGrid.Settings.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 25 9 | 30 10 | 30 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/Position.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit 2 | { 3 | //ported from https://github.com/MahApps/MahApps.Metro 4 | 5 | /// 6 | /// An Enum representing different positions, such as Left or Right. 7 | /// 8 | public enum Position 9 | { 10 | /// 11 | /// left position 12 | /// 13 | Left, 14 | 15 | /// 16 | /// right position 17 | /// 18 | Right, 19 | 20 | /// 21 | /// top position 22 | /// 23 | Top, 24 | 25 | /// 26 | /// bottom position 27 | /// 28 | Bottom 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Panels/IndexingStackPanel/StackLocation.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls.Panels 2 | { 3 | // 4 | // ported from https://github.com/DenisVuyka/WPG 5 | // 6 | /// 7 | /// StackLocation type 8 | /// 9 | public enum StackLocation 10 | { 11 | /// 12 | /// first 13 | /// 14 | First, 15 | 16 | /// 17 | /// middle 18 | /// 19 | Middle, 20 | 21 | /// 22 | /// last 23 | /// 24 | Last, 25 | 26 | /// 27 | /// first and last 28 | /// 29 | FirstAndLast 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/ComonTypes/UnderlinedType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace Avalonia.ExtendedToolkit.Controls 6 | { 7 | /// 8 | /// Specifies the underline position of a TabControl. 9 | /// 10 | public enum UnderlinedType 11 | { 12 | /// 13 | /// none 14 | /// 15 | None, 16 | /// 17 | /// tab items 18 | /// 19 | TabItems, 20 | /// 21 | /// selected tabitem 22 | /// 23 | SelectedTabItem, 24 | /// 25 | /// tabpanel 26 | /// 27 | TabPanel 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Model/XmlLanguageList.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Globalization; 5 | using System.Text; 6 | 7 | namespace Avalonia.ExampleApp.Model 8 | { 9 | /// 10 | /// orginal XmlLanguage instead of string 11 | /// 12 | public class XmlLanguageList : ObservableCollection 13 | { 14 | public XmlLanguageList() 15 | { 16 | foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures)) 17 | { 18 | if (string.IsNullOrEmpty(ci.IetfLanguageTag)) 19 | continue; 20 | Add(ci.IetfLanguageTag); 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/SplitView/SplitViewPanePlacement.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls 2 | { 3 | //ported from https://github.com/MahApps/MahApps.Metro 4 | 5 | /// 6 | /// Constants that specify whether the pane is set to the left or to the right of the content in a 7 | /// . 8 | /// 9 | public enum SplitViewPanePlacement 10 | { 11 | /// 12 | /// The pane is shown to the left of the content. 13 | /// 14 | Left = 0, 15 | 16 | /// 17 | /// The pane is shown to the right of the content. 18 | /// 19 | Right = 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/PropertyGrid/PropertyTypes/PropertyDisplayMode.cs: -------------------------------------------------------------------------------- 1 | namespace Avalonia.ExtendedToolkit.Controls.PropertyGrid.PropertyTypes 2 | { 3 | // 4 | // ported from https://github.com/DenisVuyka/WPG 5 | // 6 | 7 | /// 8 | /// Defines modes for property visualization. 9 | /// 10 | public enum PropertyDisplayMode 11 | { 12 | /// 13 | /// Show all properties. 14 | /// 15 | All, 16 | 17 | /// 18 | /// Show dependency properties only. 19 | /// 20 | Dependency, 21 | 22 | /// 23 | /// Show native CLR properties only. 24 | /// 25 | Native 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/ExtendedControls/PropertyGrid/Design/CategoryEditorContentPresenter.axaml: -------------------------------------------------------------------------------- 1 | 6 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/HelperControls/KeyFrameExt.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Animation; 2 | 3 | namespace Avalonia.ExtendedToolkit.Extensions 4 | { 5 | /// 6 | /// keyframe with name 7 | /// 8 | public class KeyFrameExt: KeyFrame 9 | { 10 | /// 11 | /// get/sets Name 12 | /// 13 | public string Name 14 | { 15 | get { return (string)GetValue(NameProperty); } 16 | set { SetValue(NameProperty, value); } 17 | } 18 | 19 | /// 20 | /// 21 | /// 22 | public static readonly StyledProperty NameProperty = 23 | AvaloniaProperty.Register(nameof(Name)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/DefaultControls/Controls.ComboBox.axaml: -------------------------------------------------------------------------------- 1 | 7 | 13 | 14 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Converters/ColorToSolidColorBrushConverter.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Data.Converters; 3 | using Avalonia.Media; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.Globalization; 7 | using System.Text; 8 | 9 | namespace Avalonia.ExtendedToolkit.Converters 10 | { 11 | public class ColorToSolidColorBrushConverter : IValueConverter 12 | { 13 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 14 | { 15 | return new SolidColorBrush((Color)value); 16 | } 17 | 18 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 19 | { 20 | return AvaloniaProperty.UnsetValue; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/HelperControls/VisualBrushExt.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Media; 2 | 3 | namespace Avalonia.ExtendedToolkit 4 | { 5 | /// 6 | /// VisualBrush with more properties 7 | /// 8 | public class VisualBrushExt: VisualBrush 9 | { 10 | /// 11 | /// Gets or sets Name. 12 | /// 13 | public string Name 14 | { 15 | get { return (string)GetValue(NameProperty); } 16 | set { SetValue(NameProperty, value); } 17 | } 18 | 19 | /// 20 | /// Defines the Name property. 21 | /// 22 | public static readonly StyledProperty NameProperty = 23 | AvaloniaProperty.Register(nameof(Name)); 24 | } 25 | } -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/HelperControls/ScaleTransformEx.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Media; 2 | 3 | namespace Avalonia.ExtendedToolkit.Controls 4 | { 5 | /// 6 | /// ScaleTransform with a name property 7 | /// 8 | public class ScaleTransformEx: ScaleTransform 9 | { 10 | /// 11 | /// get/set Name 12 | /// 13 | public string Name 14 | { 15 | get { return (string)GetValue(NameProperty); } 16 | set { SetValue(NameProperty, value); } 17 | } 18 | 19 | /// 20 | /// 21 | /// 22 | public static readonly StyledProperty NameProperty = 23 | AvaloniaProperty.Register(nameof(Name)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/DefaultControls/Controls.Thumb.axaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 18 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Controls/Notification/Interfaces/INotificationMessageFactory.cs: -------------------------------------------------------------------------------- 1 | 2 | //ported from https://github.com/Enterwell/Wpf.Notifications 3 | 4 | namespace Avalonia.ExtendedToolkit.Controls 5 | { 6 | /// 7 | /// The notification message factory. 8 | /// 9 | public interface INotificationMessageFactory 10 | { 11 | /// 12 | /// Gets the message. 13 | /// 14 | /// Returns new instance of notification message. 15 | INotificationMessage GetMessage(); 16 | 17 | /// 18 | /// Gets the button. 19 | /// 20 | /// Returns new instance of notification message button. 21 | INotificationMessageButton GetButton(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/HelperControls/TranslateTransformExt.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Media; 2 | 3 | namespace Avalonia.ExtendedToolkit 4 | { 5 | /// 6 | /// TranslateTransform with name 7 | /// 8 | public class TranslateTransformExt: TranslateTransform 9 | { 10 | /// 11 | /// get/set name 12 | /// 13 | public string Name 14 | { 15 | get { return (string)GetValue(NameProperty); } 16 | set { SetValue(NameProperty, value); } 17 | } 18 | 19 | /// 20 | /// 21 | /// 22 | public static readonly StyledProperty NameProperty = 23 | AvaloniaProperty.Register(nameof(Name)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/Styles/ExtendedControls/PropertyGrid/Design/PropertyEditorContentPresenter.axaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/ResizeRotateControlDemoView.axaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Avalonia; 4 | using Avalonia.Controls; 5 | using Avalonia.ExtendedToolkit.Controls; 6 | using Avalonia.Interactivity; 7 | using Avalonia.Markup.Xaml; 8 | 9 | 10 | namespace Avalonia.ExampleApp.Views 11 | { 12 | public class ResizeRotateControlDemoView : UserControl 13 | { 14 | 15 | public ResizeRotateControlDemoView() 16 | { 17 | InitializeComponent(); 18 | this.Find("resizeRotateControl").PositionChanged+=(o,e)=> 19 | { 20 | Console.WriteLine(e); 21 | }; 22 | } 23 | 24 | 25 | 26 | private void InitializeComponent() 27 | { 28 | AvaloniaXamlLoader.Load(this); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Avalonia.ExtendedToolkit/HelperControls/RowDefinitionExt.cs: -------------------------------------------------------------------------------- 1 | using Avalonia.Controls; 2 | 3 | namespace Avalonia.ExtendedToolkit 4 | { 5 | /// 6 | /// should be remove if avalonia supports naming of rowdefinition 7 | /// 8 | public class RowDefinitionExt:RowDefinition 9 | { 10 | /// 11 | /// get/set Name 12 | /// 13 | public string Name 14 | { 15 | get { return (string)GetValue(NameProperty); } 16 | set { SetValue(NameProperty, value); } 17 | } 18 | 19 | /// 20 | /// 21 | /// 22 | public static readonly StyledProperty NameProperty = 23 | AvaloniaProperty.Register(nameof(Name)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Avalonia.ExampleApp/Views/ButtonView.axaml.cs: -------------------------------------------------------------------------------- 1 | using Avalonia; 2 | using Avalonia.Controls; 3 | using Avalonia.ExtendedToolkit.Controls; 4 | using Avalonia.Markup.Xaml; 5 | 6 | namespace Avalonia.ExampleApp.Views 7 | { 8 | public class ButtonView : UserControl 9 | { 10 | private Badged _badged; 11 | private int _clickCounter = 1; 12 | 13 | 14 | public ButtonView() 15 | { 16 | this.InitializeComponent(); 17 | _badged = this.FindControl("CountingBadge"); 18 | this.FindControl