mirror of
https://github.com/LanZhan-Harmony/WindowsMusicPlayer-TheUntamedMusicPlayer.git
synced 2026-05-06 19:20:18 +08:00
616 lines
38 KiB
XML
616 lines
38 KiB
XML
<UserControl x:Class="UntamedMusicPlayer.Views.RootPlayBarView"
|
||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||
xmlns:helper="using:UntamedMusicPlayer.Helpers"
|
||
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
|
||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||
xmlns:model="using:UntamedMusicPlayer.Models"
|
||
xmlns:ui="using:CommunityToolkit.WinUI"
|
||
mc:Ignorable="d">
|
||
|
||
<Grid KeyTipPlacementMode="Top">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="32"/>
|
||
<RowDefinition Height="*"/>
|
||
</Grid.RowDefinitions>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="2*"/>
|
||
<ColumnDefinition Width="0.4*" MinWidth="0"/>
|
||
<ColumnDefinition Width="0.6*" MinWidth="130"/>
|
||
<ColumnDefinition Width="0.4*" MinWidth="0"/>
|
||
<ColumnDefinition Width="2*" MinWidth="80"/>
|
||
</Grid.ColumnDefinitions>
|
||
<VisualStateManager.VisualStateGroups>
|
||
<VisualStateGroup>
|
||
<VisualState x:Name="Narrow">
|
||
<VisualState.StateTriggers>
|
||
<AdaptiveTrigger MinWindowWidth="0"/>
|
||
</VisualState.StateTriggers>
|
||
<VisualState.Setters>
|
||
<Setter Target="ShuffleButton.Visibility" Value="Collapsed"/>
|
||
<Setter Target="ShuffleMenu.Visibility" Value="Visible"/>
|
||
<Setter Target="RepeatButton.Visibility" Value="Collapsed"/>
|
||
<Setter Target="RepeatMenu.Visibility" Value="Visible"/>
|
||
<Setter Target="SkipBackButton.Visibility" Value="Collapsed"/>
|
||
<Setter Target="SkipBackMenu.Visibility" Value="Visible"/>
|
||
<Setter Target="SkipForwardButton.Visibility" Value="Collapsed"/>
|
||
<Setter Target="SkipForwardMenu.Visibility" Value="Visible"/>
|
||
<Setter Target="FullScreenButton.Visibility" Value="Collapsed"/>
|
||
<Setter Target="FullScreenMenu.Visibility" Value="Visible"/>
|
||
<Setter Target="PlayStackPanel.(Grid.Column)" Value="2"/>
|
||
<Setter Target="PlayStackPanel.(Grid.ColumnSpan)" Value="1"/>
|
||
<Setter Target="PlayStackPanel.(Canvas.ZIndex)" Value="3"/>
|
||
</VisualState.Setters>
|
||
</VisualState>
|
||
<VisualState x:Name="Normal">
|
||
<VisualState.StateTriggers>
|
||
<AdaptiveTrigger MinWindowWidth="641"/>
|
||
</VisualState.StateTriggers>
|
||
<VisualState.Setters>
|
||
<Setter Target="ShuffleButton.Visibility" Value="Visible"/>
|
||
<Setter Target="ShuffleMenu.Visibility" Value="Collapsed"/>
|
||
<Setter Target="RepeatButton.Visibility" Value="Visible"/>
|
||
<Setter Target="RepeatMenu.Visibility" Value="Collapsed"/>
|
||
<Setter Target="SkipBackButton.Visibility" Value="Collapsed"/>
|
||
<Setter Target="SkipBackMenu.Visibility" Value="Visible"/>
|
||
<Setter Target="SkipForwardButton.Visibility" Value="Collapsed"/>
|
||
<Setter Target="SkipForwardMenu.Visibility" Value="Visible"/>
|
||
<Setter Target="FullScreenButton.Visibility" Value="Visible"/>
|
||
<Setter Target="FullScreenMenu.Visibility" Value="Collapsed"/>
|
||
<Setter Target="PlayStackPanel.(Grid.Column)" Value="1"/>
|
||
<Setter Target="PlayStackPanel.(Grid.ColumnSpan)" Value="3"/>
|
||
<Setter Target="PlayStackPanel.HorizontalAlignment" Value="Center"/>
|
||
<Setter Target="PlayStackPanel.(Canvas.ZIndex)" Value="3"/>
|
||
</VisualState.Setters>
|
||
</VisualState>
|
||
<VisualState x:Name="Wide">
|
||
<VisualState.StateTriggers>
|
||
<AdaptiveTrigger MinWindowWidth="861"/>
|
||
</VisualState.StateTriggers>
|
||
<VisualState.Setters>
|
||
<Setter Target="ShuffleButton.Visibility" Value="Visible"/>
|
||
<Setter Target="ShuffleMenu.Visibility" Value="Collapsed"/>
|
||
<Setter Target="RepeatButton.Visibility" Value="Visible"/>
|
||
<Setter Target="RepeatMenu.Visibility" Value="Collapsed"/>
|
||
<Setter Target="FullScreenButton.Visibility" Value="Visible"/>
|
||
<Setter Target="FullScreenMenu.Visibility" Value="Collapsed"/>
|
||
<Setter Target="PlayStackPanel.(Grid.Column)" Value="1"/>
|
||
<Setter Target="PlayStackPanel.(Grid.ColumnSpan)" Value="3"/>
|
||
<Setter Target="PlayStackPanel.HorizontalAlignment" Value="Center"/>
|
||
<Setter Target="PlayStackPanel.(Canvas.ZIndex)" Value="3"/>
|
||
</VisualState.Setters>
|
||
</VisualState>
|
||
</VisualStateGroup>
|
||
</VisualStateManager.VisualStateGroups>
|
||
|
||
|
||
<!-- 进度条 -->
|
||
<Grid Grid.Row="0" Grid.ColumnSpan="5">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="*"/>
|
||
</Grid.RowDefinitions>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="*"/>
|
||
<ColumnDefinition Width="Auto"/>
|
||
</Grid.ColumnDefinitions>
|
||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||
Margin="16,0,0,0" HorizontalAlignment="Left"
|
||
VerticalAlignment="Center"
|
||
FontSize="12"
|
||
Text="{x:Bind GetCurrent(model:Data.PlayState.CurrentPlayingTime), Mode=OneWay}"/>
|
||
<Slider x:Name="ProgressSlider" x:Uid="PlayBar_Seek"
|
||
Grid.Row="0" Grid.Column="1"
|
||
Margin="27,0,27,0" Padding="-4"
|
||
VerticalAlignment="Center"
|
||
AccessKey="S"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
IsThumbToolTipEnabled="False"
|
||
Loaded="ProgressSlider_Loaded" Maximum="100"
|
||
Minimum="0" Orientation="Horizontal"
|
||
Visibility="{x:Bind GetSliderVisibility(model:Data.PlayState.PlayState), Mode=OneWay}"
|
||
Value="{x:Bind GetPositionPercentage(model:Data.PlayState.CurrentPlayingTime, model:Data.PlayState.TotalPlayingTime), Mode=OneWay}"/>
|
||
<ProgressBar Grid.Row="0" Grid.Column="1"
|
||
Margin="23,0,23,0"
|
||
IsIndeterminate="True" ShowError="False"
|
||
ShowPaused="False"
|
||
Visibility="{x:Bind GetProgressVisibility(model:Data.PlayState.PlayState), Mode=OneWay}"/>
|
||
<TextBlock Grid.Row="0" Grid.Column="2"
|
||
Margin="0,0,16,0" HorizontalAlignment="Right"
|
||
VerticalAlignment="Center"
|
||
FontSize="12"
|
||
Text="{x:Bind GetRemaining(model:Data.PlayState.CurrentPlayingTime, model:Data.PlayState.TotalPlayingTime), Mode=OneWay}"/>
|
||
</Grid>
|
||
|
||
<!-- 歌曲信息 -->
|
||
<Button x:Uid="PlayBar_NowPlaying"
|
||
Grid.Row="1" Grid.Column="0"
|
||
Height="80" MinWidth="162"
|
||
Margin="4,0,0,4" HorizontalAlignment="Left"
|
||
AccessKey="Z"
|
||
AutomationProperties.HelpText="{x:Bind model:Data.PlayState.CurrentSong.ArtistAndAlbumStr, Mode=OneWay}"
|
||
AutomationProperties.Name="{x:Bind model:Data.PlayState.CurrentSong.Title, Mode=OneWay}"
|
||
Click="CoverBtnClickToDetail"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
Style="{StaticResource CoverButtonStyle}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="N" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<Button.ContextFlyout>
|
||
<MenuFlyout>
|
||
<MenuFlyoutItem x:Uid="Songs_Play"
|
||
Width="216"
|
||
Click="{x:Bind ViewModel.PlayButton_Click}"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"/>
|
||
<MenuFlyoutItem x:Uid="Songs_PlayNext"
|
||
Click="{x:Bind ViewModel.PlayNextButton_Click}"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"/>
|
||
<MenuFlyoutSeparator/>
|
||
<MenuFlyoutSubItem x:Uid="Songs_AddTo"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
Loaded="AddToSubItem_Loaded">
|
||
<MenuFlyoutItem x:Uid="Songs_AddTo_PlayQueue"
|
||
Width="216"
|
||
Click="{x:Bind ViewModel.AddToPlayQueueButton_Click}"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"/>
|
||
<MenuFlyoutSeparator/>
|
||
<MenuFlyoutItem x:Uid="Songs_AddTo_NewPlaylist"
|
||
Click="AddToNewPlaylistButton_Click"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"/>
|
||
</MenuFlyoutSubItem>
|
||
<MenuFlyoutItem x:Uid="Songs_ShowAlbum"
|
||
Click="{x:Bind ViewModel.ShowAlbumButton_Click}"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"/>
|
||
<MenuFlyoutItem x:Uid="Songs_ShowArtist"
|
||
Click="{x:Bind ViewModel.ShowArtistButton_Click}"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"/>
|
||
<MenuFlyoutItem x:Uid="Songs_Properties"
|
||
Click="PropertiesButton_Click"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"/>
|
||
</MenuFlyout>
|
||
</Button.ContextFlyout>
|
||
<StackPanel HorizontalAlignment="Left"
|
||
Orientation="Horizontal"
|
||
Visibility="{x:Bind ViewModel.ButtonVisibility, Mode=OneWay}">
|
||
<StackPanel.ChildrenTransitions>
|
||
<EntranceThemeTransition FromHorizontalOffset="50" IsStaggeringEnabled="True"/>
|
||
<RepositionThemeTransition IsStaggeringEnabled="False"/>
|
||
</StackPanel.ChildrenTransitions>
|
||
<Border x:Name="CoverBorder"
|
||
Width="70" Height="70"
|
||
Margin="4,0,0,0" Padding="0"
|
||
HorizontalAlignment="Left"
|
||
CornerRadius="3"
|
||
Visibility="{x:Bind GetNotDetailedVisibility(ViewModel.IsDetail), Mode=OneWay}">
|
||
<Canvas>
|
||
<Image x:Name="ControllerCover"
|
||
Width="70" Height="70"
|
||
HorizontalAlignment="Left"
|
||
VerticalAlignment="Center"
|
||
Canvas.ZIndex="1" Stretch="UniformToFill">
|
||
<interactivity:Interaction.Behaviors>
|
||
<helper:FadeImageBehavior Source="{x:Bind model:Data.PlayState.CurrentSong.Cover, Mode=OneWay}" Duration="0:0:0.45"/>
|
||
</interactivity:Interaction.Behaviors>
|
||
</Image>
|
||
<Grid Width="70" Height="70"
|
||
Background="{ThemeResource SolidBackgroundFillColorSecondaryBrush}"
|
||
Canvas.ZIndex="0">
|
||
<FontIcon Canvas.ZIndex="0"
|
||
FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="25"
|
||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||
Glyph=""/>
|
||
</Grid>
|
||
</Canvas>
|
||
</Border>
|
||
<StackPanel Orientation="Horizontal">
|
||
<TextBlock Width="6" Visibility="{x:Bind GetNotDetailedVisibility(ViewModel.IsDetail), Mode=OneWay}"/>
|
||
<StackPanel Margin="0,0,4,0" HorizontalAlignment="Left"
|
||
VerticalAlignment="Center">
|
||
<TextBlock x:Name="SongTitleTextBlock"
|
||
Margin="10,0,0,4"
|
||
FontSize="20" FontWeight="Medium"
|
||
Text="{x:Bind model:Data.PlayState.CurrentSong.Title, Mode=OneWay}"
|
||
TextTrimming="CharacterEllipsis"
|
||
TextWrapping="NoWrap"/>
|
||
<TextBlock x:Name="ArtistAndAlbumTextBlock"
|
||
Margin="10,0,0,0"
|
||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||
Text="{x:Bind model:Data.PlayState.CurrentSong.ArtistAndAlbumStr, Mode=OneWay}"
|
||
TextTrimming="CharacterEllipsis"
|
||
TextWrapping="NoWrap"
|
||
Visibility="{x:Bind GetArtistAndAlbumStrVisibility(model:Data.PlayState.CurrentSong), Mode=OneWay}"/>
|
||
</StackPanel>
|
||
<TextBlock Width="8" Visibility="{x:Bind ViewModel.IsDetail, Mode=OneWay}"/>
|
||
</StackPanel>
|
||
</StackPanel>
|
||
</Button>
|
||
|
||
<!-- 播放控制 -->
|
||
<StackPanel x:Name="PlayStackPanel"
|
||
Grid.Row="1"
|
||
HorizontalAlignment="Center"
|
||
Orientation="Horizontal" Spacing="7">
|
||
<StackPanel.ChildrenTransitions>
|
||
<RepositionThemeTransition IsStaggeringEnabled="False"/>
|
||
</StackPanel.ChildrenTransitions>
|
||
<!-- 随机播放 -->
|
||
<Button x:Name="ShuffleButton"
|
||
AccessKey="H"
|
||
Click="{x:Bind model:Data.PlayQueueManager.ShuffleModeUpdate}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
Style="{StaticResource MenuButtonStyle}"
|
||
ToolTipService.ToolTip="{x:Bind GetShuffleModeToolTip(model:Data.PlayState.ShuffleMode), Mode=OneWay}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="H" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16"
|
||
Glyph="{x:Bind GetShuffleModeIcon(model:Data.PlayState.ShuffleMode), Mode=OneWay}"/>
|
||
</Button>
|
||
|
||
<!-- 上一曲 -->
|
||
<Button x:Uid="PlayBar_Prev"
|
||
AccessKey="B"
|
||
Click="{x:Bind model:Data.MusicPlayer.PlayPreviousSong}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
Style="{StaticResource MenuButtonStyle}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="B" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16" Glyph=""/>
|
||
</Button>
|
||
|
||
<!-- 快退10s -->
|
||
<Button x:Name="SkipBackButton" x:Uid="PlayBar_SkipBack10s"
|
||
AccessKey="I"
|
||
Click="{x:Bind model:Data.MusicPlayer.SkipBack10s}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
Style="{StaticResource MenuButtonStyle}"
|
||
Visibility="{x:Bind ViewModel.IsDetail, Mode=OneWay}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="Left" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16" Glyph=""/>
|
||
</Button>
|
||
|
||
<!-- 播放/暂停 -->
|
||
<Button x:Name="PlayButton"
|
||
Width="50" Height="50"
|
||
AccessKey="P"
|
||
Click="{x:Bind model:Data.MusicPlayer.PlayPauseUpdate}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
Style="{StaticResource PlayButtonStyle}"
|
||
ToolTipService.ToolTip="{x:Bind GetPlayPauseTooltip(model:Data.PlayState.PlayState), Mode=OneWay}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="Space"/>
|
||
<KeyboardAccelerator Key="P" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="23"
|
||
Glyph="{x:Bind GetPlayPauseIcon(model:Data.PlayState.PlayState), Mode=OneWay}"/>
|
||
</Button>
|
||
|
||
<!-- 快进30s -->
|
||
<Button x:Name="SkipForwardButton" x:Uid="PlayBar_SkipForw30s"
|
||
AccessKey="O"
|
||
Click="{x:Bind model:Data.MusicPlayer.SkipForward30s}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
Style="{StaticResource MenuButtonStyle}"
|
||
Visibility="{x:Bind ViewModel.IsDetail, Mode=OneWay}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="Right" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16" Glyph=""/>
|
||
</Button>
|
||
|
||
<!-- 下一曲 -->
|
||
<Button x:Uid="PlayBar_Next"
|
||
AccessKey="F"
|
||
Click="{x:Bind model:Data.MusicPlayer.PlayNextSong}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
Style="{StaticResource MenuButtonStyle}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="F" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16" Glyph=""/>
|
||
</Button>
|
||
|
||
<!-- 循环播放 -->
|
||
<Button x:Name="RepeatButton"
|
||
AccessKey="T"
|
||
Click="{x:Bind model:Data.PlayQueueManager.RepeatModeUpdate}"
|
||
Style="{StaticResource MenuButtonStyle}"
|
||
ToolTipService.ToolTip="{x:Bind GetRepeatModeToolTip(model:Data.PlayState.RepeatMode), Mode=OneWay}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="T" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16"
|
||
Glyph="{x:Bind GetRepeatModeIcon(model:Data.PlayState.RepeatMode), Mode=OneWay}"/>
|
||
</Button>
|
||
</StackPanel>
|
||
|
||
<!-- 其他控制 -->
|
||
<StackPanel Grid.Row="1" Grid.Column="4"
|
||
Margin="0,0,4,0" HorizontalAlignment="Right"
|
||
Orientation="Horizontal" Spacing="7">
|
||
|
||
<!-- 音量 -->
|
||
<Button x:Uid="PlayBar_Volume"
|
||
AccessKey="V"
|
||
Style="{StaticResource MenuButtonStyle}">
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16"
|
||
Glyph="{x:Bind GetVolumeIcon(model:Data.PlayState.Volume, model:Data.PlayState.IsMute), Mode=OneWay}"/>
|
||
<Button.Flyout>
|
||
<Flyout>
|
||
<StackPanel Margin="-5,-4,-3,-5"
|
||
KeyTipPlacementMode="Top" Orientation="Horizontal"
|
||
Spacing="12">
|
||
<Button AccessKey="M"
|
||
Click="{x:Bind model:Data.MusicPlayer.MuteUnmuteUpdate}"
|
||
Style="{StaticResource MenuButtonStyle}">
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16"
|
||
Glyph="{x:Bind GetVolumeIcon(model:Data.PlayState.Volume, model:Data.PlayState.IsMute), Mode=OneWay}"/>
|
||
</Button>
|
||
<Slider x:Name="VolumeSlider" x:Uid="PlayBar_Volume"
|
||
Width="180"
|
||
Margin="0,3,0,0"
|
||
AccessKey="V" IsThumbToolTipEnabled="False"
|
||
Maximum="100" Minimum="0"
|
||
Value="{x:Bind model:Data.PlayState.Volume, Mode=TwoWay}"/>
|
||
<TextBlock Width="20"
|
||
Margin="-1,0,0,0" VerticalAlignment="Center"
|
||
Canvas.ZIndex="1" FontSize="12"
|
||
Text="{x:Bind model:Data.PlayState.Volume, Mode=OneWay}"
|
||
TextAlignment="Center"/>
|
||
</StackPanel>
|
||
</Flyout>
|
||
</Button.Flyout>
|
||
</Button>
|
||
|
||
<!-- 全屏 -->
|
||
<Button x:Name="FullScreenButton" x:Uid="PlayBar_FullScreen"
|
||
AccessKey="U"
|
||
Click="{x:Bind ViewModel.FullScreenButton_Click}"
|
||
Style="{StaticResource MenuButtonStyle}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="F11"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16"
|
||
Glyph="{x:Bind GetFullScreenIcon(ViewModel.IsFullScreen), Mode=OneWay}"/>
|
||
</Button>
|
||
|
||
<!-- 桌面歌词 -->
|
||
<Button x:Uid="PlayBar_DesktopLyric"
|
||
AccessKey="M"
|
||
Click="{x:Bind ViewModel.DesktopLyricButton_Click}"
|
||
Style="{StaticResource MenuButtonStyle}">
|
||
<Button.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="M" Modifiers="Control"/>
|
||
</Button.KeyboardAccelerators>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16" Glyph=""/>
|
||
</Button>
|
||
|
||
<!-- 更多菜单 -->
|
||
<Button x:Uid="PlayBar_More"
|
||
AccessKey="R"
|
||
Style="{StaticResource MenuButtonStyle}">
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}"
|
||
FontSize="16" Glyph=""/>
|
||
<Button.Flyout>
|
||
<MenuFlyout>
|
||
|
||
<!-- 歌曲属性 -->
|
||
<MenuFlyoutItem x:Uid="PlayBar_Property"
|
||
AccessKey="P" Click="PlayBarProperty_Click"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
KeyTipPlacementMode="Left">
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="I" Modifiers="Control"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
<MenuFlyoutSeparator/>
|
||
|
||
<!-- 均衡器 -->
|
||
<MenuFlyoutItem x:Uid="PlayBar_Equalizer"
|
||
AccessKey="E" Click="EqualizerButton_Click"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
KeyTipPlacementMode="Left">
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="E" Modifiers="Control, Shift"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
|
||
<!-- 播放速度 -->
|
||
<MenuFlyoutSubItem x:Uid="PlayBar_Speed"
|
||
AccessKey="S"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
KeyTipPlacementMode="Left">
|
||
<MenuFlyoutItem Margin="3,0,3,1">
|
||
<MenuFlyoutItem.Template>
|
||
<ControlTemplate>
|
||
<ListView x:Name="SpeedListView"
|
||
KeyTipPlacementMode="Left"
|
||
Loaded="SpeedListView_Loaded"
|
||
SelectionChanged="SpeedListView_SelectionChanged">
|
||
<ListViewItem Margin="0,2,0,1" AccessKey="G">
|
||
<ListViewItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="G" Modifiers="Control,Shift"/>
|
||
</ListViewItem.KeyboardAccelerators>
|
||
<Grid Width="125">
|
||
<TextBlock HorizontalAlignment="Left" Text="0.25 ×"/>
|
||
<TextBlock HorizontalAlignment="Right"
|
||
VerticalAlignment="Center"
|
||
FontSize="12"
|
||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||
Text="Ctrl+Shift+G"/>
|
||
</Grid>
|
||
</ListViewItem>
|
||
<ListViewItem Margin="0,1,0,1" AccessKey="H">
|
||
<ListViewItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="H" Modifiers="Control,Shift"/>
|
||
</ListViewItem.KeyboardAccelerators>
|
||
<Grid Width="125">
|
||
<TextBlock HorizontalAlignment="Left" Text="0.5 ×"/>
|
||
<TextBlock HorizontalAlignment="Right"
|
||
VerticalAlignment="Center"
|
||
FontSize="12"
|
||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||
Text="Ctrl+Shift+H"/>
|
||
</Grid>
|
||
</ListViewItem>
|
||
<ListViewItem Margin="0,1,0,1" AccessKey="J">
|
||
<ListViewItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="J" Modifiers="Control,Shift"/>
|
||
</ListViewItem.KeyboardAccelerators>
|
||
<Grid Width="125">
|
||
<TextBlock HorizontalAlignment="Left" Text="1 ×"/>
|
||
<TextBlock HorizontalAlignment="Right"
|
||
VerticalAlignment="Center"
|
||
FontSize="12"
|
||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||
Text="Ctrl+Shift+J"/>
|
||
</Grid>
|
||
</ListViewItem>
|
||
<ListViewItem Margin="0,1,0,1" AccessKey="K">
|
||
<ListViewItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="K" Modifiers="Control,Shift"/>
|
||
</ListViewItem.KeyboardAccelerators>
|
||
<Grid Width="125">
|
||
<TextBlock HorizontalAlignment="Left" Text="1.5 ×"/>
|
||
<TextBlock HorizontalAlignment="Right"
|
||
VerticalAlignment="Center"
|
||
FontSize="12"
|
||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||
Text="Ctrl+Shift+K"/>
|
||
</Grid>
|
||
</ListViewItem>
|
||
<ListViewItem Margin="0,1,0,2" AccessKey="L">
|
||
<ListViewItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="L" Modifiers="Control,Shift"/>
|
||
</ListViewItem.KeyboardAccelerators>
|
||
<Grid Width="125">
|
||
<TextBlock HorizontalAlignment="Left" Text="2 ×"/>
|
||
<TextBlock HorizontalAlignment="Right"
|
||
VerticalAlignment="Center"
|
||
FontSize="12"
|
||
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
|
||
Text="Ctrl+Shift+L"/>
|
||
</Grid>
|
||
</ListViewItem>
|
||
</ListView>
|
||
</ControlTemplate>
|
||
</MenuFlyoutItem.Template>
|
||
</MenuFlyoutItem>
|
||
</MenuFlyoutSubItem>
|
||
|
||
<!-- 投屏 -->
|
||
<MenuFlyoutItem x:Uid="PlayBar_CastDevice"
|
||
AccessKey="C"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
KeyTipPlacementMode="Left">
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="K" Modifiers="Control"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
|
||
<!-- 快退10s -->
|
||
<MenuFlyoutItem x:Name="SkipBackMenu" x:Uid="PlayBar_More_SkipBack10s"
|
||
AccessKey="I"
|
||
Click="{x:Bind model:Data.MusicPlayer.SkipBack10s}"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
KeyTipPlacementMode="Left"
|
||
Visibility="{x:Bind GetNotDetailedVisibility(ViewModel.IsDetail), Mode=OneWay}">
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="Left" Modifiers="Control"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
|
||
<!-- 快进30s -->
|
||
<MenuFlyoutItem x:Name="SkipForwardMenu" x:Uid="PlayBar_More_SkipForw30s"
|
||
AccessKey="O"
|
||
Click="{x:Bind model:Data.MusicPlayer.SkipForward30s}"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
KeyTipPlacementMode="Left"
|
||
Visibility="{x:Bind GetNotDetailedVisibility(ViewModel.IsDetail), Mode=OneWay}">
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="Right" Modifiers="Control"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
|
||
<!-- 随机播放 -->
|
||
<MenuFlyoutItem x:Name="ShuffleMenu"
|
||
AccessKey="H"
|
||
Click="{x:Bind model:Data.PlayQueueManager.ShuffleModeUpdate}"
|
||
IsEnabled="{x:Bind ViewModel.Availability, Mode=OneWay}"
|
||
KeyTipPlacementMode="Left"
|
||
Text="{x:Bind GetMoreShuffleModeText(model:Data.PlayState.ShuffleMode), Mode=OneWay}">
|
||
<MenuFlyoutItem.Icon>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}" Glyph="{x:Bind GetShuffleModeIcon(model:Data.PlayState.ShuffleMode), Mode=OneWay}"/>
|
||
</MenuFlyoutItem.Icon>
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="H" Modifiers="Control"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
|
||
<!-- 循环播放 -->
|
||
<MenuFlyoutItem x:Name="RepeatMenu"
|
||
AccessKey="T"
|
||
Click="{x:Bind model:Data.PlayQueueManager.RepeatModeUpdate}"
|
||
KeyTipPlacementMode="Left"
|
||
Text="{x:Bind GetMoreRepeatModeText(model:Data.PlayState.RepeatMode), Mode=OneWay}">
|
||
<MenuFlyoutItem.Icon>
|
||
<FontIcon FontFamily="{StaticResource UntamedFontFamily}" Glyph="{x:Bind GetRepeatModeIcon(model:Data.PlayState.RepeatMode), Mode=OneWay}"/>
|
||
</MenuFlyoutItem.Icon>
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="T" Modifiers="Control"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
|
||
<!-- 全屏 -->
|
||
<MenuFlyoutItem x:Name="FullScreenMenu" x:Uid="PlayBar_Menu_FullScreeen"
|
||
AccessKey="U"
|
||
Icon="{ui:FontIcon FontFamily={StaticResource UntamedFontFamily},
|
||
Glyph=}"
|
||
KeyTipPlacementMode="Left">
|
||
<MenuFlyoutItem.KeyboardAccelerators>
|
||
<KeyboardAccelerator Key="F11"/>
|
||
</MenuFlyoutItem.KeyboardAccelerators>
|
||
</MenuFlyoutItem>
|
||
</MenuFlyout>
|
||
</Button.Flyout>
|
||
</Button>
|
||
</StackPanel>
|
||
</Grid>
|
||
</UserControl>
|