Refactor and reformat XAML and related files

Improved code readability, consistency, and formatting across multiple files:
- Updated `expect.txt` placeholders and entries for `customaction`, `Dxva`, and `svchost`.
- Fixed a minor XML documentation formatting issue in `MonitorStateManager.cs`.
- Reformatted `TextBlock` in `IdentifyWindow.xaml` for better alignment.
- Cleaned up `MainWindow.xaml` by removing duplicate `xmlns` declarations, consolidating attributes, and improving clarity in `ProfilesButton`.
- Refactored `LightSwitchPage.xaml`:
  - Improved indentation and alignment in `SettingsExpander` and `SettingsCard`.
  - Reintroduced and reformatted "Force mode now" and location settings sections.
  - Enhanced `LocationResultPanel` with sunrise/sunset tooltips.
- Organized `PowerDisplayPage.xaml` by deduplicating `xmlns` declarations and consolidating `SettingsCard` attributes.

These changes enhance maintainability, readability, and adherence to coding standards.
This commit is contained in:
Yu Leng
2025-12-02 05:54:08 +08:00
parent 9957da6e0f
commit 700078259b
6 changed files with 150 additions and 153 deletions

View File

@@ -331,7 +331,6 @@ CUSTOMFORMATPLACEHOLDER
CVal CVal
cvd cvd
CVirtual CVirtual
CVS
CWMO CWMO
CXSCREEN CXSCREEN
CXSMICON CXSMICON
@@ -480,7 +479,7 @@ eab
EAccess EAccess
easeofaccess easeofaccess
ecount ecount
Edid edid
EDITKEYBOARD EDITKEYBOARD
EDITSHORTCUTS EDITSHORTCUTS
EDITTEXT EDITTEXT
@@ -1774,7 +1773,7 @@ SVGIO
svgz svgz
SVSI SVSI
SWFO SWFO
SWP swp
SWPNOSIZE SWPNOSIZE
SWPNOZORDER SWPNOZORDER
SWRESTORE SWRESTORE

View File

@@ -17,7 +17,7 @@ namespace PowerDisplay.Common.Services
/// <summary> /// <summary>
/// Manages monitor parameter state in a separate file from main settings. /// Manages monitor parameter state in a separate file from main settings.
/// This avoids FileSystemWatcher feedback loops by separating read-only config (settings.json) /// This avoids FileSystemWatcher feedback loops by separating read-only config (settings.json)
/// from frequently-updated state (monitor_state.json). /// from frequently updated state (monitor_state.json).
/// Simplified to use direct save strategy for reliability and simplicity (KISS principle). /// Simplified to use direct save strategy for reliability and simplicity (KISS principle).
/// </summary> /// </summary>
public partial class MonitorStateManager : IDisposable public partial class MonitorStateManager : IDisposable

View File

@@ -1,4 +1,4 @@
<Window <Window
x:Class="PowerDisplay.PowerDisplayXAML.IdentifyWindow" x:Class="PowerDisplay.PowerDisplayXAML.IdentifyWindow"
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"
@@ -6,13 +6,14 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> mc:Ignorable="d">
<Grid Background="Transparent"> <Grid Background="Transparent">
<TextBlock x:Name="NumberText" <TextBlock
Text="1" x:Name="NumberText"
FontSize="200" HorizontalAlignment="Center"
FontWeight="Bold" VerticalAlignment="Center"
FontFamily="Segoe UI" FontFamily="Segoe UI"
Foreground="White" FontSize="200"
HorizontalAlignment="Center" FontWeight="Bold"
VerticalAlignment="Center"/> Foreground="White"
Text="1" />
</Grid> </Grid>
</Window> </Window>

View File

@@ -1,13 +1,13 @@
<winuiex:WindowEx <winuiex:WindowEx
x:Class="PowerDisplay.MainWindow" x:Class="PowerDisplay.MainWindow"
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:animatedVisuals="using:Microsoft.UI.Xaml.Controls.AnimatedVisuals" xmlns:animatedVisuals="using:Microsoft.UI.Xaml.Controls.AnimatedVisuals"
xmlns:animations="using:CommunityToolkit.WinUI.Animations" xmlns:animations="using:CommunityToolkit.WinUI.Animations"
xmlns:local="using:PowerDisplay" xmlns:local="using:PowerDisplay"
xmlns:models="using:PowerDisplay.Common.Models"
xmlns:toolkit="using:CommunityToolkit.WinUI.Controls" xmlns:toolkit="using:CommunityToolkit.WinUI.Controls"
xmlns:ui="using:CommunityToolkit.WinUI" xmlns:ui="using:CommunityToolkit.WinUI"
xmlns:models="using:PowerDisplay.Common.Models"
xmlns:vm="using:PowerDisplay.ViewModels" xmlns:vm="using:PowerDisplay.ViewModels"
xmlns:winuiex="using:WinUIEx" xmlns:winuiex="using:WinUIEx"
MinWidth="0" MinWidth="0"
@@ -145,9 +145,7 @@
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock <TextBlock VerticalAlignment="Center" Text="{x:Bind Name}" />
VerticalAlignment="Center"
Text="{x:Bind Name}" />
<FontIcon <FontIcon
Grid.Column="1" Grid.Column="1"
Margin="8,0,0,0" Margin="8,0,0,0"
@@ -365,7 +363,8 @@
<Button <Button
x:Name="ProfilesButton" x:Name="ProfilesButton"
x:Uid="ProfilesTooltip" x:Uid="ProfilesTooltip"
Content="{ui:FontIcon Glyph=&#xE748;, FontSize=16}" Content="{ui:FontIcon Glyph=&#xE748;,
FontSize=16}"
Style="{StaticResource SubtleButtonStyle}" Style="{StaticResource SubtleButtonStyle}"
Visibility="{x:Bind ConvertBoolToVisibility(ViewModel.HasProfiles), Mode=OneWay}"> Visibility="{x:Bind ConvertBoolToVisibility(ViewModel.HasProfiles), Mode=OneWay}">
<Button.Flyout> <Button.Flyout>

View File

@@ -163,25 +163,25 @@
</controls:SettingsGroup> </controls:SettingsGroup>
<controls:SettingsGroup x:Uid="LightSwitch_BehaviorSettingsGroup" IsEnabled="{x:Bind ViewModel.IsEnabled, Mode=OneWay}"> <controls:SettingsGroup x:Uid="LightSwitch_BehaviorSettingsGroup" IsEnabled="{x:Bind ViewModel.IsEnabled, Mode=OneWay}">
<tkcontrols:SettingsExpander <tkcontrols:SettingsExpander
x:Uid="LightSwitch_ApplyDarkModeExpander" x:Uid="LightSwitch_ApplyDarkModeExpander"
HeaderIcon="{ui:FontIcon Glyph=&#xE790;}" HeaderIcon="{ui:FontIcon Glyph=&#xE790;}"
IsExpanded="True"> IsExpanded="True">
<tkcontrols:SettingsExpander.Items> <tkcontrols:SettingsExpander.Items>
<tkcontrols:SettingsCard HorizontalContentAlignment="Stretch" ContentAlignment="Left"> <tkcontrols:SettingsCard HorizontalContentAlignment="Stretch" ContentAlignment="Left">
<controls:CheckBoxWithDescriptionControl <controls:CheckBoxWithDescriptionControl
x:Uid="LightSwitch_SystemCheckbox" x:Uid="LightSwitch_SystemCheckbox"
AutomationProperties.AutomationId="ChangeSystemCheckbox_LightSwitch" AutomationProperties.AutomationId="ChangeSystemCheckbox_LightSwitch"
IsChecked="{x:Bind ViewModel.ChangeSystem, Mode=TwoWay}" /> IsChecked="{x:Bind ViewModel.ChangeSystem, Mode=TwoWay}" />
</tkcontrols:SettingsCard> </tkcontrols:SettingsCard>
<tkcontrols:SettingsCard HorizontalContentAlignment="Stretch" ContentAlignment="Left"> <tkcontrols:SettingsCard HorizontalContentAlignment="Stretch" ContentAlignment="Left">
<controls:CheckBoxWithDescriptionControl <controls:CheckBoxWithDescriptionControl
x:Uid="LightSwitch_AppsCheckbox" x:Uid="LightSwitch_AppsCheckbox"
AutomationProperties.AutomationId="ChangeAppsCheckbox_LightSwitch" AutomationProperties.AutomationId="ChangeAppsCheckbox_LightSwitch"
IsChecked="{x:Bind ViewModel.ChangeApps, Mode=TwoWay}" /> IsChecked="{x:Bind ViewModel.ChangeApps, Mode=TwoWay}" />
</tkcontrols:SettingsCard> </tkcontrols:SettingsCard>
</tkcontrols:SettingsExpander.Items> </tkcontrols:SettingsExpander.Items>
</tkcontrols:SettingsExpander> </tkcontrols:SettingsExpander>
<InfoBar <InfoBar
x:Name="PowerDisplayDisabledWarningBar" x:Name="PowerDisplayDisabledWarningBar"
x:Uid="LightSwitch_PowerDisplayDisabledWarningBar" x:Uid="LightSwitch_PowerDisplayDisabledWarningBar"
@@ -235,8 +235,8 @@
</tkcontrols:SettingsExpander.Items> </tkcontrols:SettingsExpander.Items>
</tkcontrols:SettingsExpander> </tkcontrols:SettingsExpander>
</controls:SettingsGroup> </controls:SettingsGroup>
<!-- Force mode buttons --> <!-- Force mode buttons -->
<!--<tkcontrols:SettingsCard <!--<tkcontrols:SettingsCard
Header="Force mode now" Header="Force mode now"
HeaderIcon="{ui:FontIcon Glyph=&#xE706;}" HeaderIcon="{ui:FontIcon Glyph=&#xE706;}"
Description="Apply light or dark mode immediately"> Description="Apply light or dark mode immediately">
@@ -250,24 +250,24 @@
</StackPanel> </StackPanel>
</tkcontrols:SettingsCard>--> </tkcontrols:SettingsCard>-->
<ContentDialog <ContentDialog
x:Name="LocationDialog" x:Name="LocationDialog"
x:Uid="LightSwitch_LocationDialog" x:Uid="LightSwitch_LocationDialog"
IsPrimaryButtonEnabled="False" IsPrimaryButtonEnabled="False"
IsSecondaryButtonEnabled="True" IsSecondaryButtonEnabled="True"
PrimaryButtonClick="LocationDialog_PrimaryButtonClick" PrimaryButtonClick="LocationDialog_PrimaryButtonClick"
PrimaryButtonStyle="{StaticResource AccentButtonStyle}"> PrimaryButtonStyle="{StaticResource AccentButtonStyle}">
<Grid RowSpacing="16"> <Grid RowSpacing="16">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" MinHeight="64" /> <RowDefinition Height="*" MinHeight="64" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<TextBlock <TextBlock
x:Uid="LightSwitch_LocationDialog_Description" x:Uid="LightSwitch_LocationDialog_Description"
Foreground="{ThemeResource TextFillColorSecondaryBrush}" Foreground="{ThemeResource TextFillColorSecondaryBrush}"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
<!--<AutoSuggestBox <!--<AutoSuggestBox
x:Name="CityAutoSuggestBox" x:Name="CityAutoSuggestBox"
Grid.Row="1" Grid.Row="1"
Margin="0,16,0,8" Margin="0,16,0,8"
@@ -295,99 +295,99 @@
</AutoSuggestBox.ItemTemplate> </AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>--> </AutoSuggestBox>-->
<Grid <Grid
Grid.Row="1" Grid.Row="1"
Margin="0,12,0,0" Margin="0,12,0,0"
ColumnSpacing="4"> ColumnSpacing="4">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="124" /> <ColumnDefinition Width="124" />
<ColumnDefinition Width="124" /> <ColumnDefinition Width="124" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<NumberBox <NumberBox
x:Name="LatitudeBox" x:Name="LatitudeBox"
x:Uid="LightSwitch_LatitudeBox" x:Uid="LightSwitch_LatitudeBox"
AutomationProperties.AutomationId="LatitudeBox_LightSwitch" AutomationProperties.AutomationId="LatitudeBox_LightSwitch"
Maximum="90" Maximum="90"
Minimum="-90" Minimum="-90"
ValueChanged="LatLonBox_ValueChanged" ValueChanged="LatLonBox_ValueChanged"
Value="{x:Bind ViewModel.LocationPanelLatitude, Mode=TwoWay}" /> Value="{x:Bind ViewModel.LocationPanelLatitude, Mode=TwoWay}" />
<NumberBox <NumberBox
x:Name="LongitudeBox" x:Name="LongitudeBox"
x:Uid="LightSwitch_LongitudeBox" x:Uid="LightSwitch_LongitudeBox"
Grid.Column="1" Grid.Column="1"
AutomationProperties.AutomationId="LongitudeBox_LightSwitch" AutomationProperties.AutomationId="LongitudeBox_LightSwitch"
Maximum="180" Maximum="180"
Minimum="-180" Minimum="-180"
ValueChanged="LatLonBox_ValueChanged" ValueChanged="LatLonBox_ValueChanged"
Value="{x:Bind ViewModel.LocationPanelLongitude, Mode=TwoWay}" /> Value="{x:Bind ViewModel.LocationPanelLongitude, Mode=TwoWay}" />
<Button <Button
x:Name="SyncButton" x:Name="SyncButton"
x:Uid="LightSwitch_FindLocationAutomation" x:Uid="LightSwitch_FindLocationAutomation"
Grid.Column="2" Grid.Column="2"
Margin="4,0,0,0" Margin="4,0,0,0"
HorizontalAlignment="Stretch" HorizontalAlignment="Stretch"
VerticalAlignment="Bottom"
AutomationProperties.AutomationId="SyncLocationButton_LightSwitch"
Click="GetGeoLocation_Click">
<StackPanel Orientation="Horizontal" Spacing="8">
<FontIcon FontSize="16" Glyph="&#xECAF;" />
<TextBlock x:Uid="LightSwitch_FindLocation" />
</StackPanel>
</Button>
</Grid>
<ProgressRing
x:Name="SyncLoader"
Grid.Row="2"
Width="40"
Height="40"
VerticalAlignment="Center"
IsActive="False"
Visibility="Collapsed" />
<Grid
x:Name="LocationResultPanel"
Grid.Row="2"
VerticalAlignment="Bottom" VerticalAlignment="Bottom"
ColumnSpacing="16" AutomationProperties.AutomationId="SyncLocationButton_LightSwitch"
RowSpacing="12" Click="GetGeoLocation_Click">
Visibility="Collapsed"> <StackPanel Orientation="Horizontal" Spacing="8">
<Grid.ColumnDefinitions> <FontIcon FontSize="16" Glyph="&#xECAF;" />
<ColumnDefinition Width="Auto" /> <TextBlock x:Uid="LightSwitch_FindLocation" />
<ColumnDefinition Width="*" /> </StackPanel>
</Grid.ColumnDefinitions> </Button>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<FontIcon FontSize="20" Glyph="&#xED39;">
<ToolTipService.ToolTip>
<TextBlock x:Uid="LightSwitch_SunriseTooltip" />
</ToolTipService.ToolTip>
</FontIcon>
<TextBlock
Grid.Column="1"
AutomationProperties.AutomationId="SunriseText_LightSwitch"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{x:Bind ViewModel.LocationPanelLightTime, Converter={StaticResource TimeSpanToFriendlyTimeConverter}, Mode=OneWay}"
TextAlignment="Left" />
<FontIcon
Grid.Row="1"
FontSize="20"
Glyph="&#xED3A;">
<ToolTipService.ToolTip>
<TextBlock x:Uid="LightSwitch_SunsetTooltip" />
</ToolTipService.ToolTip>
</FontIcon>
<TextBlock
Grid.Row="1"
Grid.Column="1"
AutomationProperties.AutomationId="SunsetText_LightSwitch"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{x:Bind ViewModel.LocationPanelDarkTime, Converter={StaticResource TimeSpanToFriendlyTimeConverter}, Mode=OneWay}"
TextAlignment="Left" />
</Grid>
</Grid> </Grid>
</ContentDialog> <ProgressRing
x:Name="SyncLoader"
Grid.Row="2"
Width="40"
Height="40"
VerticalAlignment="Center"
IsActive="False"
Visibility="Collapsed" />
<Grid
x:Name="LocationResultPanel"
Grid.Row="2"
VerticalAlignment="Bottom"
ColumnSpacing="16"
RowSpacing="12"
Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<FontIcon FontSize="20" Glyph="&#xED39;">
<ToolTipService.ToolTip>
<TextBlock x:Uid="LightSwitch_SunriseTooltip" />
</ToolTipService.ToolTip>
</FontIcon>
<TextBlock
Grid.Column="1"
AutomationProperties.AutomationId="SunriseText_LightSwitch"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{x:Bind ViewModel.LocationPanelLightTime, Converter={StaticResource TimeSpanToFriendlyTimeConverter}, Mode=OneWay}"
TextAlignment="Left" />
<FontIcon
Grid.Row="1"
FontSize="20"
Glyph="&#xED3A;">
<ToolTipService.ToolTip>
<TextBlock x:Uid="LightSwitch_SunsetTooltip" />
</ToolTipService.ToolTip>
</FontIcon>
<TextBlock
Grid.Row="1"
Grid.Column="1"
AutomationProperties.AutomationId="SunsetText_LightSwitch"
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Text="{x:Bind ViewModel.LocationPanelDarkTime, Converter={StaticResource TimeSpanToFriendlyTimeConverter}, Mode=OneWay}"
TextAlignment="Left" />
</Grid>
</Grid>
</ContentDialog>
</StackPanel> </StackPanel>
</controls:SettingsPageControl.ModuleContent> </controls:SettingsPageControl.ModuleContent>

View File

@@ -6,8 +6,8 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:library="using:Microsoft.PowerToys.Settings.UI.Library" xmlns:library="using:Microsoft.PowerToys.Settings.UI.Library"
xmlns:local="using:Microsoft.PowerToys.Settings.UI.Helpers" xmlns:local="using:Microsoft.PowerToys.Settings.UI.Helpers"
xmlns:pdmodels="using:PowerDisplay.Common.Models"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:pdmodels="using:PowerDisplay.Common.Models"
xmlns:tkcontrols="using:CommunityToolkit.WinUI.Controls" xmlns:tkcontrols="using:CommunityToolkit.WinUI.Controls"
xmlns:ui="using:CommunityToolkit.WinUI" xmlns:ui="using:CommunityToolkit.WinUI"
AutomationProperties.LandmarkType="Main" AutomationProperties.LandmarkType="Main"
@@ -187,9 +187,7 @@
</tkcontrols:SettingsCard> </tkcontrols:SettingsCard>
<!-- VCP Capabilities --> <!-- VCP Capabilities -->
<tkcontrols:SettingsCard <tkcontrols:SettingsCard x:Uid="PowerDisplay_Monitor_VcpCapabilities" Visibility="{x:Bind HasCapabilities, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}">
x:Uid="PowerDisplay_Monitor_VcpCapabilities"
Visibility="{x:Bind HasCapabilities, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}">
<Button <Button
x:Uid="PowerDisplay_Monitor_VcpDetails_Button" x:Uid="PowerDisplay_Monitor_VcpDetails_Button"
Content="&#xE946;" Content="&#xE946;"