XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

HaloPixelToolBox

【WinUI3】基于USB HID通讯的花再音响工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
<?xml version="1.0" encoding="utf-8"?>
<Page
    x:Class="HaloPixelToolBox.Client.Views.CloudMusicLyricsToolPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:HaloPixelToolBox.Client.Views"
    xmlns:controls="using:CommunityToolkit.WinUI.Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Page.Resources>
        <Style x:Key="SettingsSectionHeaderTextBlockStyle"
               BasedOn="{StaticResource BodyStrongTextBlockStyle}"
               TargetType="TextBlock">
            <Style.Setters>
                <Setter Property="Margin" Value="1,30,0,6" />
            </Style.Setters>
        </Style>
    </Page.Resources>

    <Grid>
        <ScrollView>
            <StackPanel Orientation="Vertical" Spacing="10" Margin="0,0,0,20">
                <TextBlock Text="设备状态" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}"/>
                <Grid RowSpacing="10" ColumnSpacing="5">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <TextBlock Text="花再 Halo Pixel 状态:" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{ThemeResource BodyStrongTextBlockStyle}"/>
                    <Grid Grid.Column="1">
                        <Border CornerRadius="90" Height="25" Width="25" Visibility="{x:Bind ViewModel.DeviceReady, Mode=OneWay, Converter={StaticResource BooleanInverseConverter}}" Background="{ThemeResource SystemFillColorCriticalBrush}"/>
                        <Border CornerRadius="90" Height="25" Width="25" Visibility="{x:Bind ViewModel.DeviceReady, Mode=OneWay}" Background="{ThemeResource SystemFillColorSuccessBrush}"/>
                    </Grid>
                    <TextBlock Grid.Row="1" Text="网易云音乐 状态:" VerticalAlignment="Center" HorizontalAlignment="Right" Style="{ThemeResource BodyStrongTextBlockStyle}"/>
                    <Grid Grid.Column="1" Grid.Row="1">
                        <Border CornerRadius="90" Height="25" Width="25" Visibility="{x:Bind ViewModel.CloudMusicReady, Mode=OneWay, Converter={StaticResource BooleanInverseConverter}}" Background="{ThemeResource SystemFillColorCriticalBrush}"/>
                        <Border CornerRadius="90" Height="25" Width="25" Visibility="{x:Bind ViewModel.CloudMusicReady, Mode=OneWay}" Background="{ThemeResource SystemFillColorSuccessBrush}"/>
                    </Grid>
                </Grid>
                <TextBlock Text="{x:Bind ViewModel.SupportedVersion, Mode=OneWay, Converter={StaticResource StringFormatConverter}, ConverterParameter='网易云版本 (当前支持版本 (0) )'}" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}"/>
                <TextBlock Text="{x:Bind ViewModel.CloudMusicVersion, Mode=OneWay}" Style="{StaticResource BodyTextBlockStyle}"/>
                <TextBlock Text="功能" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}"/>
                <controls:SettingsCard Header="启用歌词同步" Description="启用后,网易云的歌词会实时显示在花再 Halo Pixel 音响上">
                    <ToggleSwitch IsOn="{x:Bind ViewModel.EnableCloudMusicLyrics, Mode=TwoWay}"/>
                </controls:SettingsCard>
                <controls:SettingsCard Header="开启屏幕颜色同步" Description="自动提取当前歌曲专辑封面主色并应用到像素屏歌词文本颜色">
                    <ToggleSwitch IsOn="{x:Bind ViewModel.EnableScreenColorSync, Mode=TwoWay}"/>
                </controls:SettingsCard>
                <controls:SettingsExpander Header="开启氛围灯颜色同步" Description="自动提取当前歌曲专辑封面主色并应用到音响氛围灯/底座灯颜色">
                    <ToggleSwitch x:Name="enableAmbientColorSyncToggleSwitch" IsOn="{x:Bind ViewModel.EnableAmbientColorSync, Mode=TwoWay}"/>
                    <controls:SettingsExpander.Items>
                        <controls:SettingsCard Header="氛围灯同步效果" Description="设置专辑颜色同步时的灯光效果模式" IsEnabled="{x:Bind enableAmbientColorSyncToggleSwitch.IsOn, Mode=OneWay}">
                            <ComboBox x:Name="syncAmbientLightEffectComboBox" Tag="HaloPixelToolBox.Client.Profiles.CrossVersionProfiles.CloudMusicLyricsProfile.SyncAmbientLightEffect">
                                <ComboBoxItem Content="常亮" Tag="Static"/>
                                <ComboBoxItem Content="呼吸" Tag="Breathing"/>
                            </ComboBox>
                        </controls:SettingsCard>
                        <controls:SettingsCard Header="氛围灯同步亮度" Description="设置专辑颜色同步时的灯光亮度模式" IsEnabled="{x:Bind enableAmbientColorSyncToggleSwitch.IsOn, Mode=OneWay}">
                            <StackPanel Orientation="Horizontal" Spacing="15">
                                <RadioButton x:Name="brightnessLowRadio" Content="低" GroupName="BrightnessSyncGroup" Checked="OnBrightnessRadioChecked"/>
                                <RadioButton x:Name="brightnessMediumRadio" Content="中" GroupName="BrightnessSyncGroup" Checked="OnBrightnessRadioChecked"/>
                                <RadioButton x:Name="brightnessHighRadio" Content="高" GroupName="BrightnessSyncGroup" Checked="OnBrightnessRadioChecked"/>
                            </StackPanel>
                        </controls:SettingsCard>
                        <controls:SettingsCard Header="氛围灯同步速度" Description="设置呼吸或动态灯效的变化速度 (1-10)" IsEnabled="{x:Bind enableAmbientColorSyncToggleSwitch.IsOn, Mode=OneWay}">
                            <Slider Minimum="1" Maximum="10" StepFrequency="1" Width="150" Value="{x:Bind ViewModel.SyncAmbientLightSpeed, Mode=TwoWay}"/>
                        </controls:SettingsCard>
                    </controls:SettingsExpander.Items>
                </controls:SettingsExpander>
                <controls:SettingsExpander Header="手动输入内存地址" Description="解析使用手动输入的内存地址">
                    <ToggleSwitch x:Name="useInputedAddressToggleSwitch" IsOn="{x:Bind ViewModel.UseInputedAddress, Mode=TwoWay}"/>
                    <controls:SettingsExpander.Items>
                        <controls:SettingsCard Header="内存地址" Description="设置要解析的内存地址" IsEnabled="{x:Bind useInputedAddressToggleSwitch.IsOn, Mode=OneWay}">
                            <TextBox Text="{x:Bind ViewModel.InputedAddress, Mode=TwoWay}"/>
                        </controls:SettingsCard>
                    </controls:SettingsExpander.Items>
                </controls:SettingsExpander>
                <TextBlock Text="个性化" Style="{StaticResource SettingsSectionHeaderTextBlockStyle}"/>
                <controls:SettingsExpander Header="暂停后切换回默认界面" Description="一段时间后自动切换回时钟界面等音响自带页面">
                    <ToggleSwitch x:Name="switchBackWhenPauseToggleSwitch" IsOn="{x:Bind ViewModel.SwitchBackWhenPause, Mode=TwoWay}"/>
                    <controls:SettingsExpander.Items>
                        <controls:SettingsCard Header="暂停延迟" Description="设置多长时间后,音响切换回默认界面" IsEnabled="{x:Bind switchBackWhenPauseToggleSwitch.IsOn, Mode=OneWay}">
                            <NumberBox SpinButtonPlacementMode="Compact" Value="{x:Bind ViewModel.SwitchBackTimeout, Mode=TwoWay}"/>
                        </controls:SettingsCard>
                        <controls:SettingsCard Header="暂停界面" Description="设置暂停后切换回的默认界面" IsEnabled="{x:Bind switchBackWhenPauseToggleSwitch.IsOn, Mode=OneWay}">
                            <ComboBox x:Name="defaultHaloPixelUIModelComboBox" Tag="HaloPixelToolBox.Client.Profiles.CrossVersionProfiles.CloudMusicLyricsProfile.DefaultHaloPixelUIModel">
                                <ComboBoxItem Content="时钟类" Tag="Clock"/>
                                <ComboBoxItem Content="游戏类" Tag="Game"/>
                                <ComboBoxItem Content="打工类" Tag="Work"/>
                                <ComboBoxItem Content="读书类" Tag="Read"/>
                                <ComboBoxItem Content="猫咪类" Tag="Cats"/>
                                <ComboBoxItem Content="狗狗类" Tag="Dogs"/>
                                <ComboBoxItem Content="热更类" Tag="Memes"/>
                                <ComboBoxItem Content="赛博类" Tag="Cyber"/>
                                <ComboBoxItem Content="频谱类" Tag="Waves"/>
                            </ComboBox>
                        </controls:SettingsCard>
                    </controls:SettingsExpander.Items>
                </controls:SettingsExpander>
                <controls:SettingsCard Header="歌词位置" Description="设置歌词的默认显示位置">
                    <ComboBox x:Name="defaultHaloPixelTextLayoutComboBox" Tag="HaloPixelToolBox.Client.Profiles.CrossVersionProfiles.CloudMusicLyricsProfile.DefaultHaloPixelTextLayout">
                        <ComboBoxItem Content="左对齐" Tag="Left"/>
                        <ComboBoxItem Content="右对齐" Tag="Right"/>
                        <ComboBoxItem Content="居中" Tag="Center"/>
                        <ComboBoxItem Content="伸展" Tag="Stretch"/>
                    </ComboBox>
                </controls:SettingsCard>
            </StackPanel>
        </ScrollView>
    </Grid>
</Page>