Skip to content

Commit 9ca3b9c

Browse files
committed
Use Segoe Fluent Icons on Windows 11
1 parent cbd4ac7 commit 9ca3b9c

File tree

5 files changed

+34
-6
lines changed

5 files changed

+34
-6
lines changed

MediaFlyout/Extensions/OperatingSystemExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,10 @@ public static bool IsLessThan(this OperatingSystem os, OSVersions version)
2727
{
2828
return os.Version.Build < (int)version;
2929
}
30+
31+
public static bool IsWindows11(this OperatingSystem os)
32+
{
33+
return Environment.OSVersion.IsAtLeast(OSVersions.VER_11_21H2);
34+
}
3035
}
3136
}

MediaFlyout/Flyout/FlyoutWindow.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,17 @@ public FlyoutWindow()
4444
Closing += Window_Closing;
4545
PreviewKeyDown += Window_PreviewKeyDown;
4646

47-
if (Environment.OSVersion.IsAtLeast(OSVersions.VER_11_21H2))
47+
if (Environment.OSVersion.IsWindows11())
4848
{
4949
FontFamily = new FontFamily("Segoe UI Variable Text");
50+
Resources["IconFont"] = new FontFamily("Segoe Fluent Icons");
5051
Resources["FluentButtonRadius"] = 4;
5152
Resources["FluentCornerRadius"] = new CornerRadius(4);
5253
}
54+
else
55+
{
56+
Resources["IconFont"] = new FontFamily("Segoe MDL2 Assets");
57+
}
5358

5459
ThemeHelper.Instance.OnThemeChanged += Theme_ThemeChanged;
5560
Theme_Update();
@@ -150,7 +155,7 @@ public void Theme_Apply()
150155
}
151156

152157
User32.AccentFlags flags = User32.AccentFlags.DrawAllBorders;
153-
if (Environment.OSVersion.IsLessThan(OSVersions.VER_11_21H2))
158+
if (!Environment.OSVersion.IsWindows11())
154159
{
155160
switch (WindowsTaskbar.Current.Side)
156161
{

MediaFlyout/MediaFlyoutWindow.xaml.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Microsoft.Win32;
77
using MediaFlyout.Views;
88
using MediaFlyout.Flyout;
9+
using MediaFlyout.Extensions;
910

1011
namespace MediaFlyout
1112
{
@@ -28,6 +29,19 @@ public MediaFlyoutWindow()
2829
UpdateSessions();
2930
UpdateStatus();
3031

32+
if (Environment.OSVersion.IsWindows11())
33+
{
34+
Resources["ButtonPlaySize"] = 14.0;
35+
Resources["ButtonPrev"] = "\uF8AC";
36+
Resources["ButtonNext"] = "\uF8AD";
37+
}
38+
else
39+
{
40+
Resources["ButtonPlaySize"] = 18.0;
41+
Resources["ButtonPrev"] = "\uE892";
42+
Resources["ButtonNext"] = "\uE893";
43+
}
44+
3145
SystemEvents.PowerModeChanged += OnPowerModeChanged;
3246
}
3347

MediaFlyout/Views/SessionItem.xaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@
4848
</Grid>
4949

5050
<StackPanel x:Name="ControlsContainer" Grid.Column="2" VerticalAlignment="Center" Height="40" Margin="4,0" HorizontalAlignment="Center" Orientation="Horizontal">
51-
<Button x:Name="Previous" Content="&#xE892;" FontFamily="Segoe MDL2 Assets" FontSize="12" Width="40" IsEnabled="{Binding IsPreviousEnabled}" Click="Previous_Click" FocusVisualStyle="{StaticResource FluentFocusVisualStyle}" Margin="0,0,2,0" />
52-
<Button x:Name="PlayPause" Content="{Binding ToggleButton, FallbackValue=''}" FontFamily="Segoe MDL2 Assets" FontSize="18" Width="40" IsEnabled="{Binding IsPlayPauseEnabled}" Click="PlayPause_Click" FocusVisualStyle="{StaticResource FluentFocusVisualStyle}" />
53-
<Button x:Name="Next" Content="&#xE893;" FontFamily="Segoe MDL2 Assets" FontSize="12" Width="40" IsEnabled="{Binding IsNextEnabled}" Click="Next_Click" FocusVisualStyle="{StaticResource FluentFocusVisualStyle}" Margin="2,0,0,0" />
51+
<Button x:Name="Previous" Content="{DynamicResource ButtonPrev}" FontFamily="{DynamicResource IconFont}" FontSize="12" Width="40" IsEnabled="{Binding IsPreviousEnabled}" Click="Previous_Click" FocusVisualStyle="{StaticResource FluentFocusVisualStyle}" Margin="0,0,2,0" />
52+
<Button x:Name="PlayPause" Content="{Binding ToggleButton, FallbackValue=''}" FontFamily="{DynamicResource IconFont}" FontSize="{DynamicResource ButtonPlaySize}" Width="40" IsEnabled="{Binding IsPlayPauseEnabled}" Click="PlayPause_Click" FocusVisualStyle="{StaticResource FluentFocusVisualStyle}" />
53+
<Button x:Name="Next" Content="{DynamicResource ButtonNext}" FontFamily="{DynamicResource IconFont}" FontSize="12" Width="40" IsEnabled="{Binding IsNextEnabled}" Click="Next_Click" FocusVisualStyle="{StaticResource FluentFocusVisualStyle}" Margin="2,0,0,0" />
5454
</StackPanel>
5555
</Grid>
5656
</StackPanel>

MediaFlyout/Views/SessionItem.xaml.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using MediaFlyout.AppInformation;
22
using MediaFlyout.Utilities;
33
using MediaFlyout.ViewModels;
4+
using MediaFlyout.Extensions;
45
using System;
56
using System.IO;
67
using System.Windows;
@@ -18,6 +19,9 @@ public partial class SessionItem : UserControl
1819
private SessionItemViewModel model = new SessionItemViewModel();
1920
private SourceAppInfo sourceInfo;
2021

22+
private static readonly string GLYPH_PLAY = Environment.OSVersion.IsWindows11() ? "\uF5B0" : "\uE768";
23+
private static readonly string GLYPH_PAUSE = Environment.OSVersion.IsWindows11() ? "\uF8AE" : "\uE769";
24+
2125
public SessionItem(MediaFlyoutWindow flyout, GlobalSystemMediaTransportControlsSession session)
2226
{
2327
InitializeComponent();
@@ -57,7 +61,7 @@ private void UpdateControls()
5761
{
5862
if (session == null) return;
5963
var playback = session.GetPlaybackInfo();
60-
model.ToggleButton = IsPlaying(playback) ? "\uE769" : "\uE768";
64+
model.ToggleButton = IsPlaying(playback) ? GLYPH_PAUSE : GLYPH_PLAY;
6165

6266
if (playback == null) return;
6367
model.IsPreviousEnabled = playback.Controls.IsPreviousEnabled;

0 commit comments

Comments
 (0)