Ensure the flyout respects the given RequestedTheme... although it doesn't seem to be picking up the theme changes from Windows user settings just yet...
This commit is contained in:
@@ -3,34 +3,12 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:controls="using:NotificationFlyout.Uwp.UI.Controls"
|
xmlns:controls="using:NotificationFlyout.Uwp.UI.Controls"
|
||||||
CornerRadius="8">
|
CornerRadius="4"
|
||||||
|
RequestedTheme="Default">
|
||||||
<Grid
|
<Grid
|
||||||
Width="330"
|
Width="330"
|
||||||
Height="360"
|
Height="360"
|
||||||
Margin="23">
|
Margin="23">
|
||||||
<Grid.RowDefinitions>
|
<ToggleSwitch x:Name="test" Toggled="ToggleSwitch_Toggled" />
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
<RowDefinition Height="Auto" />
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<TextBlock Text="Quick lauch" />
|
|
||||||
<GridView Grid.Row="1" HorizontalAlignment="Center">
|
|
||||||
<GridView.ItemsPanel>
|
|
||||||
<ItemsPanelTemplate>
|
|
||||||
<ItemsWrapGrid Orientation="Horizontal" />
|
|
||||||
</ItemsPanelTemplate>
|
|
||||||
</GridView.ItemsPanel>
|
|
||||||
<Button
|
|
||||||
Width="94"
|
|
||||||
Margin="6,6,3,6"
|
|
||||||
Content="Test" />
|
|
||||||
<Button
|
|
||||||
Width="94"
|
|
||||||
Margin="3,6,3,6"
|
|
||||||
Content="Test" />
|
|
||||||
<Button
|
|
||||||
Width="94"
|
|
||||||
Margin="3,6,6,6"
|
|
||||||
Content="Test" />
|
|
||||||
</GridView>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</controls:NotificationFlyoutPresenter>
|
</controls:NotificationFlyoutPresenter>
|
||||||
|
|||||||
@@ -6,5 +6,18 @@
|
|||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ToggleSwitch_Toggled(object sender, Windows.UI.Xaml.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (test.IsOn)
|
||||||
|
{
|
||||||
|
this.RequestedTheme = Windows.UI.Xaml.ElementTheme.Dark;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.RequestedTheme = Windows.UI.Xaml.ElementTheme.Light;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:sample="clr-namespace:NotificationFlyout.Sample;assembly=NotificationFlyout.Sample"
|
xmlns:sample="clr-namespace:NotificationFlyout.Sample;assembly=NotificationFlyout.Sample"
|
||||||
IconSource="/Assets/Icon.ico">
|
IconSource="/Assets/Icon.ico"
|
||||||
|
LightIconSource="/Assets/Icon.ico">
|
||||||
<sample:NotificationFlyoutPresenter />
|
<sample:NotificationFlyoutPresenter />
|
||||||
</NotificationFlyout>
|
</NotificationFlyout>
|
||||||
|
|||||||
+12
-1
@@ -2,8 +2,19 @@
|
|||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:controls="using:NotificationFlyout.Uwp.UI.Controls">
|
xmlns:controls="using:NotificationFlyout.Uwp.UI.Controls">
|
||||||
|
<ResourceDictionary.ThemeDictionaries>
|
||||||
|
<ResourceDictionary x:Key="Default">
|
||||||
|
<StaticResource x:Key="NotificationFlyoutPresenterBackground" ResourceKey="SystemControlTransientBackgroundBrush" />
|
||||||
|
</ResourceDictionary>
|
||||||
|
<ResourceDictionary x:Key="HighContrast">
|
||||||
|
<StaticResource x:Key="NotificationFlyoutPresenterBackground" ResourceKey="SystemControlPageBackgroundChromeMediumLowBrush" />
|
||||||
|
</ResourceDictionary>
|
||||||
|
<ResourceDictionary x:Key="Light">
|
||||||
|
<StaticResource x:Key="NotificationFlyoutPresenterBackground" ResourceKey="SystemControlTransientBackgroundBrush" />
|
||||||
|
</ResourceDictionary>
|
||||||
|
</ResourceDictionary.ThemeDictionaries>
|
||||||
<Style TargetType="controls:NotificationFlyoutPresenter">
|
<Style TargetType="controls:NotificationFlyoutPresenter">
|
||||||
<Setter Property="Background" Value="{StaticResource SystemControlTransientBackgroundBrush}" />
|
<Setter Property="Background" Value="{ThemeResource SystemControlTransientBackgroundBrush}" />
|
||||||
<Setter Property="Template">
|
<Setter Property="Template">
|
||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<ControlTemplate TargetType="controls:NotificationFlyoutPresenter">
|
<ControlTemplate TargetType="controls:NotificationFlyoutPresenter">
|
||||||
|
|||||||
@@ -81,6 +81,11 @@ namespace NotificationFlyout.Wpf.UI.Controls
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void OnIconPropertyChanged()
|
private void OnIconPropertyChanged()
|
||||||
|
{
|
||||||
|
SetIcon();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetIcon()
|
||||||
{
|
{
|
||||||
var shellTrayHandle = WindowHelper.GetHandle(ShellTrayHandleName);
|
var shellTrayHandle = WindowHelper.GetHandle(ShellTrayHandleName);
|
||||||
if (shellTrayHandle == null) return;
|
if (shellTrayHandle == null) return;
|
||||||
@@ -88,8 +93,9 @@ namespace NotificationFlyout.Wpf.UI.Controls
|
|||||||
var dpi = WindowHelper.GetDpi(shellTrayHandle);
|
var dpi = WindowHelper.GetDpi(shellTrayHandle);
|
||||||
|
|
||||||
var iconSource = SystemSettingsHelper.DefaultSystemTheme == SystemTheme.Dark ? IconSource : LightIconSource;
|
var iconSource = SystemSettingsHelper.DefaultSystemTheme == SystemTheme.Dark ? IconSource : LightIconSource;
|
||||||
using var icon = iconSource.ConvertToIcon(dpi);
|
if (iconSource == null) return;
|
||||||
|
|
||||||
|
using var icon = iconSource.ConvertToIcon(dpi);
|
||||||
_xamlHost.SetNotificationIcon(icon.Handle);
|
_xamlHost.SetNotificationIcon(icon.Handle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user