diff --git a/App/WeddingBuilder/Builder.csproj b/App/WeddingBuilder/Builder.csproj index 64641fb..2b81d92 100644 --- a/App/WeddingBuilder/Builder.csproj +++ b/App/WeddingBuilder/Builder.csproj @@ -9,17 +9,13 @@ - - - - - + @@ -27,11 +23,6 @@ - - - ..\..\Framework\Avalonia\References\FluentAvalonia.dll - - StartProjectConfigurationView.axaml diff --git a/App/WeddingBuilder/Views/AddPageView.axaml b/App/WeddingBuilder/Views/AddPageView.axaml index 6396238..5d339aa 100644 --- a/App/WeddingBuilder/Views/AddPageView.axaml +++ b/App/WeddingBuilder/Views/AddPageView.axaml @@ -1,16 +1,14 @@ - - + diff --git a/App/WeddingBuilder/Views/AddPageView.axaml.cs b/App/WeddingBuilder/Views/AddPageView.axaml.cs index 69a5984..1efc24d 100644 --- a/App/WeddingBuilder/Views/AddPageView.axaml.cs +++ b/App/WeddingBuilder/Views/AddPageView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Styling; -using FluentAvalonia.UI.Controls; using PropertyChanged; using System; +using TheXamlGuy.UI.Avalonia.Controls; namespace Builder; diff --git a/App/WeddingBuilder/Views/CreateProjectConfigurationView.axaml b/App/WeddingBuilder/Views/CreateProjectConfigurationView.axaml index 9b02d23..479c9b8 100644 --- a/App/WeddingBuilder/Views/CreateProjectConfigurationView.axaml +++ b/App/WeddingBuilder/Views/CreateProjectConfigurationView.axaml @@ -3,11 +3,10 @@ xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="clr-namespace:TheXamlGuy.UI.Avalonia.Controls;assembly=TheXamlGuy.UI.Avalonia.Controls" - xmlns:fluent="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" xmlns:views="using:Builder" - Loaded="{Composite {ChangeProperty {Binding $parent[fluent:ContentDialog]}, - Classes, - Create}}"> + Loaded="{Composite {ChangeProperty {Binding $parent[ContentDialog]}, + Classes, + Create}}"> diff --git a/App/WeddingBuilder/Views/ExistingProjectConfigurationView.axaml b/App/WeddingBuilder/Views/ExistingProjectConfigurationView.axaml index a4cd9a8..c3df69c 100644 --- a/App/WeddingBuilder/Views/ExistingProjectConfigurationView.axaml +++ b/App/WeddingBuilder/Views/ExistingProjectConfigurationView.axaml @@ -2,7 +2,6 @@ x:Class="Builder.ExistingProjectConfigurationView" xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:fluent="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" - Loaded="{Composite {ChangeProperty {Binding $parent[fluent:ContentDialog]}, + Loaded="{Composite {ChangeProperty {Binding $parent[ContentDialog]}, Classes, Open}}" /> diff --git a/App/WeddingBuilder/Views/MainWindow.axaml.cs b/App/WeddingBuilder/Views/MainWindow.axaml.cs index 1631cab..4c46596 100644 --- a/App/WeddingBuilder/Views/MainWindow.axaml.cs +++ b/App/WeddingBuilder/Views/MainWindow.axaml.cs @@ -12,64 +12,65 @@ using System.Runtime.InteropServices; namespace Builder; [DoNotNotify] -public partial class MainWindow : CoreWindow +public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } - - protected override void OnOpened(EventArgs args) - { - if (AvaloniaLocator.Current.GetService() is FluentAvaloniaTheme theme) - { - theme.RequestedThemeChanged += OnRequestedThemeChanged; - - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - if (IsWindows11 && theme.RequestedTheme != FluentAvaloniaTheme.HighContrastModeString) - { - TransparencyBackgroundFallback = Brushes.Transparent; - TransparencyLevelHint = WindowTransparencyLevel.Mica; - - TryEnableMicaEffect(theme); - } - } - } - - base.OnOpened(args); - } - - private void OnRequestedThemeChanged(FluentAvaloniaTheme sender, RequestedThemeChangedEventArgs args) - { - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - if (IsWindows11 && args.NewTheme != FluentAvaloniaTheme.HighContrastModeString) - { - TryEnableMicaEffect(sender); - } - else if (args.NewTheme == FluentAvaloniaTheme.HighContrastModeString) - { - SetValue(BackgroundProperty, AvaloniaProperty.UnsetValue); - } - } - } - - private void TryEnableMicaEffect(FluentAvaloniaTheme theme) - { - if (theme.RequestedTheme == FluentAvaloniaTheme.DarkModeString) - { - Color2 color = this.TryFindResource("SolidBackgroundFillColorBase", out object? value) ? (Color2)(Color)value! : new Color2(32, 32, 32); - color = color.LightenPercent(-0.5f); - - Background = new ImmutableSolidColorBrush(color, 0.78); - } - else if (theme.RequestedTheme == FluentAvaloniaTheme.LightModeString) - { - Color2 color = this.TryFindResource("SolidBackgroundFillColorBase", out object? value) ? (Color2)(Color)value! : new Color2(243, 243, 243); - color = color.LightenPercent(0.5f); - - Background = new ImmutableSolidColorBrush(color, 0.9); - } - } } + +// protected override void OnOpened(EventArgs args) +// { +// if (AvaloniaLocator.Current.GetService() is FluentAvaloniaTheme theme) +// { +// theme.RequestedThemeChanged += OnRequestedThemeChanged; + +// if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) +// { +// if (IsWindows11 && theme.RequestedTheme != FluentAvaloniaTheme.HighContrastModeString) +// { +// TransparencyBackgroundFallback = Brushes.Transparent; +// TransparencyLevelHint = WindowTransparencyLevel.Mica; + +// TryEnableMicaEffect(theme); +// } +// } +// } + +// base.OnOpened(args); +// } + +// private void OnRequestedThemeChanged(FluentAvaloniaTheme sender, RequestedThemeChangedEventArgs args) +// { +// if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) +// { +// if (IsWindows11 && args.NewTheme != FluentAvaloniaTheme.HighContrastModeString) +// { +// TryEnableMicaEffect(sender); +// } +// else if (args.NewTheme == FluentAvaloniaTheme.HighContrastModeString) +// { +// SetValue(BackgroundProperty, AvaloniaProperty.UnsetValue); +// } +// } +// } + +// private void TryEnableMicaEffect(FluentAvaloniaTheme theme) +// { +// if (theme.RequestedTheme == FluentAvaloniaTheme.DarkModeString) +// { +// Color2 color = this.TryFindResource("SolidBackgroundFillColorBase", out object? value) ? (Color2)(Color)value! : new Color2(32, 32, 32); +// color = color.LightenPercent(-0.5f); + +// Background = new ImmutableSolidColorBrush(color, 0.78); +// } +// else if (theme.RequestedTheme == FluentAvaloniaTheme.LightModeString) +// { +// Color2 color = this.TryFindResource("SolidBackgroundFillColorBase", out object? value) ? (Color2)(Color)value! : new Color2(243, 243, 243); +// color = color.LightenPercent(0.5f); + +// Background = new ImmutableSolidColorBrush(color, 0.9); +// } +// } +//} diff --git a/App/WeddingBuilder/Views/PageCollectionView.axaml b/App/WeddingBuilder/Views/PageCollectionView.axaml index 7952a69..b31ea77 100644 --- a/App/WeddingBuilder/Views/PageCollectionView.axaml +++ b/App/WeddingBuilder/Views/PageCollectionView.axaml @@ -2,30 +2,29 @@ x:Class="Builder.PageCollectionView" xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:fluent="using:FluentAvalonia.UI.Controls" xmlns:view="clr-namespace:Builder;assembly=Builder"> - - + - - + + - - - - - + + + + + - - + + diff --git a/App/WeddingBuilder/Views/ProjectConfigurationView.axaml b/App/WeddingBuilder/Views/ProjectConfigurationView.axaml index 5c91ade..2d47dee 100644 --- a/App/WeddingBuilder/Views/ProjectConfigurationView.axaml +++ b/App/WeddingBuilder/Views/ProjectConfigurationView.axaml @@ -1,25 +1,24 @@ - - + - - + - - - - - - - - - - - - + + diff --git a/App/WeddingBuilder/Views/ProjectConfigurationView.axaml.cs b/App/WeddingBuilder/Views/ProjectConfigurationView.axaml.cs index 6e09ce1..f088146 100644 --- a/App/WeddingBuilder/Views/ProjectConfigurationView.axaml.cs +++ b/App/WeddingBuilder/Views/ProjectConfigurationView.axaml.cs @@ -1,7 +1,7 @@ using Avalonia.Styling; -using FluentAvalonia.UI.Controls; using PropertyChanged; using System; +using TheXamlGuy.UI.Avalonia.Controls; namespace Builder; @@ -13,5 +13,5 @@ public partial class ProjectConfigurationView : ContentDialog, IStyleable InitializeComponent(); } - Type IStyleable.StyleKey => typeof(ContentDialog); + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.ContentDialog); } diff --git a/App/WeddingBuilder/Views/ProjectView.axaml b/App/WeddingBuilder/Views/ProjectView.axaml index ed30dfd..0b095c8 100644 --- a/App/WeddingBuilder/Views/ProjectView.axaml +++ b/App/WeddingBuilder/Views/ProjectView.axaml @@ -2,7 +2,6 @@ x:Class="Builder.ProjectView" xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:fluent="using:FluentAvalonia.UI.Controls" Loaded="{Navigate {Binding EventAggregator}, ProjectConfiguration}"> @@ -12,7 +11,7 @@ HorizontalAlignment="Right" Classes="accent" Content="New project" /> - + Loaded="{Composite {ChangeProperty {Binding $parent[ContentDialog]}, + Classes, + Project}}"> - - - - - - - - - + + + + + + + - - - - - - - + + + + + + + diff --git a/Framework/Avalonia/Avalonia.csproj b/Framework/Avalonia/Avalonia.csproj index 9471f50..d011a6e 100644 --- a/Framework/Avalonia/Avalonia.csproj +++ b/Framework/Avalonia/Avalonia.csproj @@ -14,14 +14,9 @@ + - - - References\FluentAvalonia.dll - - - diff --git a/Framework/Avalonia/References/FluentAvalonia.dll b/Framework/Avalonia/References/FluentAvalonia.dll deleted file mode 100644 index f3091eb..0000000 Binary files a/Framework/Avalonia/References/FluentAvalonia.dll and /dev/null differ diff --git a/Framework/Avalonia/Routing/ContentControlRouteHandler.cs b/Framework/Avalonia/Routing/ContentControlRouteHandler.cs index 8a13998..423d888 100644 --- a/Framework/Avalonia/Routing/ContentControlRouteHandler.cs +++ b/Framework/Avalonia/Routing/ContentControlRouteHandler.cs @@ -1,22 +1,8 @@ using Avalonia.Controls; using Avalonia.Controls.Primitives; -using FluentAvalonia.UI.Controls; namespace TheXamlGuy.Framework.Avalonia; -public class ContentDialogRouteHandler : RouteHandler -{ - public override async void Handle(Route request) - { - if (request.Template is ContentDialog contentDialog) - { - contentDialog.DataContext = request.Data; - await contentDialog.ShowAsync(); - } - } -} - - public class ContentControlRouteHandler : RouteHandler { public override void Handle(Route request) diff --git a/Framework/Avalonia/Routing/ContentDialogRouteHandler.cs b/Framework/Avalonia/Routing/ContentDialogRouteHandler.cs new file mode 100644 index 0000000..765fc2d --- /dev/null +++ b/Framework/Avalonia/Routing/ContentDialogRouteHandler.cs @@ -0,0 +1,15 @@ +using TheXamlGuy.UI.Avalonia.Controls; + +namespace TheXamlGuy.Framework.Avalonia; + +public class ContentDialogRouteHandler : RouteHandler +{ + public override async void Handle(Route request) + { + if (request.Template is ContentDialog contentDialog) + { + contentDialog.DataContext = request.Data; + await contentDialog.ShowAsync(); + } + } +} diff --git a/Framework/Avalonia/Routing/FrameRouteHandler.cs b/Framework/Avalonia/Routing/FrameRouteHandler.cs index d19c4b0..9d09346 100644 --- a/Framework/Avalonia/Routing/FrameRouteHandler.cs +++ b/Framework/Avalonia/Routing/FrameRouteHandler.cs @@ -1,6 +1,6 @@ using Avalonia.Controls.Primitives; -using FluentAvalonia.UI.Controls; using FluentAvalonia.UI.Navigation; +using TheXamlGuy.UI.Avalonia.Controls; namespace TheXamlGuy.Framework.Avalonia; diff --git a/Framework/Avalonia/Routing/RouterContext.cs b/Framework/Avalonia/Routing/RouterContext.cs index 2cea9c7..c33892b 100644 --- a/Framework/Avalonia/Routing/RouterContext.cs +++ b/Framework/Avalonia/Routing/RouterContext.cs @@ -1,7 +1,7 @@ using Avalonia.Controls; using Avalonia.Controls.Primitives; -using FluentAvalonia.UI.Controls; using TheXamlGuy.Framework.Core; +using TheXamlGuy.UI.Avalonia.Controls; namespace TheXamlGuy.Framework.Avalonia; diff --git a/UI/Avalonia.Controls/Avalonia.Controls.csproj b/UI/Avalonia.Controls/Avalonia.Controls.csproj index 50f864c..0bd423c 100644 --- a/UI/Avalonia.Controls/Avalonia.Controls.csproj +++ b/UI/Avalonia.Controls/Avalonia.Controls.csproj @@ -8,6 +8,7 @@ + diff --git a/UI/Avalonia.Controls/ContentDialog/ContentDialog.cs b/UI/Avalonia.Controls/ContentDialog/ContentDialog.cs new file mode 100644 index 0000000..646dde3 --- /dev/null +++ b/UI/Avalonia.Controls/ContentDialog/ContentDialog.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace TheXamlGuy.UI.Avalonia.Controls; + +public class ContentDialog : FluentAvalonia.UI.Controls.ContentDialog, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.ContentDialog); +} \ No newline at end of file diff --git a/UI/Avalonia.Controls/Frame/Frame.cs b/UI/Avalonia.Controls/Frame/Frame.cs new file mode 100644 index 0000000..339cac9 --- /dev/null +++ b/UI/Avalonia.Controls/Frame/Frame.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace TheXamlGuy.UI.Avalonia.Controls; + +public class Frame : FluentAvalonia.UI.Controls.Frame, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.Frame); +} \ No newline at end of file diff --git a/UI/Avalonia.Controls/IconElement/PathIconEx.cs b/UI/Avalonia.Controls/IconElement/PathIconEx.cs new file mode 100644 index 0000000..c3dfa3d --- /dev/null +++ b/UI/Avalonia.Controls/IconElement/PathIconEx.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace TheXamlGuy.UI.Avalonia.Controls; + +public class PathIconEx : FluentAvalonia.UI.Controls.FAPathIcon, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.FAPathIcon); +} \ No newline at end of file diff --git a/UI/Avalonia.Controls/IconElement/PathIconSource.cs b/UI/Avalonia.Controls/IconElement/PathIconSource.cs new file mode 100644 index 0000000..83f1748 --- /dev/null +++ b/UI/Avalonia.Controls/IconElement/PathIconSource.cs @@ -0,0 +1,7 @@ +namespace TheXamlGuy.UI.Avalonia.Controls +{ + public class PathIconSource : FluentAvalonia.UI.Controls.PathIconSource + { + + } +} \ No newline at end of file diff --git a/UI/Avalonia.Controls/NavigationView/NavigationView.cs b/UI/Avalonia.Controls/NavigationView/NavigationView.cs new file mode 100644 index 0000000..484f579 --- /dev/null +++ b/UI/Avalonia.Controls/NavigationView/NavigationView.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace TheXamlGuy.UI.Avalonia.Controls; + +public class NavigationView : FluentAvalonia.UI.Controls.NavigationView, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.NavigationView); +} diff --git a/UI/Avalonia.Controls/NavigationView/NavigationViewItem.cs b/UI/Avalonia.Controls/NavigationView/NavigationViewItem.cs new file mode 100644 index 0000000..e7a08d7 --- /dev/null +++ b/UI/Avalonia.Controls/NavigationView/NavigationViewItem.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace TheXamlGuy.UI.Avalonia.Controls; + +public class NavigationViewItem : FluentAvalonia.UI.Controls.NavigationViewItem, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.NavigationViewItem); +} diff --git a/UI/Avalonia.Controls/Properties/Assembly.cs b/UI/Avalonia.Controls/Properties/Assembly.cs new file mode 100644 index 0000000..966bf26 --- /dev/null +++ b/UI/Avalonia.Controls/Properties/Assembly.cs @@ -0,0 +1,3 @@ +using Avalonia.Metadata; + +[assembly: XmlnsDefinition("https://github.com/avaloniaui", "TheXamlGuy.UI.Avalonia.Controls")] \ No newline at end of file diff --git a/UI/Avalonia.Controls/SettingsExpander/SettingsExpander.cs b/UI/Avalonia.Controls/SettingsExpander/SettingsExpander.cs new file mode 100644 index 0000000..3d01b5f --- /dev/null +++ b/UI/Avalonia.Controls/SettingsExpander/SettingsExpander.cs @@ -0,0 +1,8 @@ +using Avalonia.Styling; + +namespace TheXamlGuy.UI.Avalonia.Controls; + +public class SettingsExpander : FluentAvalonia.UI.Controls.SettingsExpander, IStyleable +{ + Type IStyleable.StyleKey => typeof(FluentAvalonia.UI.Controls.SettingsExpander); +} \ No newline at end of file diff --git a/UI/Avalonia/Avalonia.csproj b/UI/Avalonia/Avalonia.csproj index aec5e80..62d94d6 100644 --- a/UI/Avalonia/Avalonia.csproj +++ b/UI/Avalonia/Avalonia.csproj @@ -12,9 +12,4 @@ - - - References\FluentAvalonia.dll - - diff --git a/UI/Avalonia/Properties/Assembly.cs b/UI/Avalonia/Properties/Assembly.cs index 9360605..9eaa1de 100644 --- a/UI/Avalonia/Properties/Assembly.cs +++ b/UI/Avalonia/Properties/Assembly.cs @@ -1,4 +1,3 @@ using Avalonia.Metadata; -[assembly: XmlnsDefinition("https://github.com/avaloniaui", "FluentAvalonia.UI.Controls")] [assembly: XmlnsDefinition("https://github.com/avaloniaui", "TheXamlGuy.UI.Avalonia")] \ No newline at end of file