diff --git a/CHANGELOG.md b/CHANGELOG.md index d9e56df..93f6051 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +# 2.5.0 +- added attached properties to work with the window icon # 2.4.0 - updated to Font-Awesome 6.2.0 # 2.3.0 diff --git a/src/FontAwesome6.Example.WPF.Shared/MainWindow.xaml b/src/FontAwesome6.Example.WPF.Shared/MainWindow.xaml index 98d8ca1..21b20c4 100644 --- a/src/FontAwesome6.Example.WPF.Shared/MainWindow.xaml +++ b/src/FontAwesome6.Example.WPF.Shared/MainWindow.xaml @@ -10,6 +10,7 @@ xmlns:fas="http://schemas.fontawesome.com/icons/svg" xmlns:fasap="http://schemas.fontawesome.com/icons/svg/properties" xmlns:viewModels="clr-namespace:FontAwesome6.Example.WPF" + fafap:FontAwesome.Icon="{Binding SelectedIcon}" mc:Ignorable="d" Title="FontAwesome6.Example.WPF" Height="675" Width="900"> @@ -24,9 +25,7 @@ - - - + diff --git a/src/FontAwesome6.Fonts.Net/AttachedProperties/FontAwesome.cs b/src/FontAwesome6.Fonts.Net/AttachedProperties/FontAwesome.cs index f5b3cbc..2cccabb 100644 --- a/src/FontAwesome6.Fonts.Net/AttachedProperties/FontAwesome.cs +++ b/src/FontAwesome6.Fonts.Net/AttachedProperties/FontAwesome.cs @@ -133,6 +133,27 @@ private static void OnRenderingTriggered(DependencyObject sender, DependencyProp { switch (sender) { + case Window target: + { + var icon = GetIcon(sender); + if (icon == EFontAwesomeIcon.None) + { + target.SetValue(Window.IconProperty, null); + } + else + { + var primaryColor = GetPrimaryColor(sender); +#if FontAwesomePro + var secondaryColor = GetSecondaryColor(sender); + var swapOpacity = GetSwapOpacity(sender); + var primaryOpacity = GetPrimaryOpacity(sender); + var secondaryOpacity = GetSecondaryOpacity(sender); + target.Source = icon.CreateImageSource(primaryColor, secondaryColor, swapOpacity, primaryOpacity, secondaryOpacity); +#endif + target.SetValue(Window.IconProperty, icon.CreateImageSource(primaryColor)); + } + } + break; case Image target: { var icon = GetIcon(sender); diff --git a/src/FontAwesome6.Svg.Net/AttachedProperties/FontAwesome.cs b/src/FontAwesome6.Svg.Net/AttachedProperties/FontAwesome.cs index 7709801..c08f01d 100644 --- a/src/FontAwesome6.Svg.Net/AttachedProperties/FontAwesome.cs +++ b/src/FontAwesome6.Svg.Net/AttachedProperties/FontAwesome.cs @@ -130,6 +130,30 @@ private static void OnRenderingTriggered(DependencyObject sender, DependencyProp { switch (sender) { + case Window target: + { + var icon = GetIcon(sender); + + + if (icon == EFontAwesomeIcon.None) + { + target.SetValue(Window.IconProperty, null); + } + else + { + var primaryColor = GetPrimaryColor(sender); +#if FontAwesomePro + var secondaryColor = GetSecondaryColor(sender); + var swapOpacity = GetSwapOpacity(sender); + var primaryOpacity = GetPrimaryOpacity(sender); + var secondaryOpacity = GetSecondaryOpacity(sender); + target.SetValue(Window.IconProperty, icon.CreateImageSource(primaryColor, secondaryColor, swapOpacity, primaryOpacity, secondaryOpacity)); +#else + target.SetValue(Window.IconProperty, icon.CreateImageSource(primaryColor)); +#endif + } + } + break; case Image target: { var icon = GetIcon(sender);