This commit is contained in:
vanzue
2025-08-21 23:34:13 +08:00
parent d916cfd5d3
commit feebfb6ff2

View File

@@ -76,168 +76,167 @@
</DataTemplate> </DataTemplate>
</local:NavigatablePage.Resources> </local:NavigatablePage.Resources>
<Grid Margin="16,0,0,0" RowSpacing="12"> <Grid Margin="16,0,0,0" RowSpacing="12">
<Grid Margin="16,0,0,0" RowSpacing="24"> <Grid.RowDefinitions>
<Grid.RowDefinitions> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="*" />
<RowDefinition Height="*" /> </Grid.RowDefinitions>
</Grid.RowDefinitions> <TextBlock
<TextBlock
x:Uid="DashboardTitle" x:Uid="DashboardTitle"
MaxWidth="{StaticResource PageMaxWidth}" MaxWidth="{StaticResource PageMaxWidth}"
Margin="1,0,0,0" Margin="1,0,0,0"
VerticalAlignment="Center" VerticalAlignment="Center"
Style="{StaticResource TitleTextBlockStyle}" /> Style="{StaticResource TitleTextBlockStyle}" />
<Grid <Grid
Grid.Row="1" Grid.Row="1"
MaxWidth="{StaticResource PageMaxWidth}" MaxWidth="{StaticResource PageMaxWidth}"
Padding="0,0,20,0" Padding="0,0,20,0"
ColumnSpacing="16"> ColumnSpacing="16">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Button <Button
Padding="0,0,8,0" Padding="0,0,8,0"
AutomationProperties.Name="WhatsNewButton" AutomationProperties.Name="WhatsNewButton"
Click="WhatsNewButton_Click" Click="WhatsNewButton_Click"
Style="{StaticResource SubtleButtonStyle}"> Style="{StaticResource SubtleButtonStyle}">
<Grid ColumnSpacing="16"> <Grid ColumnSpacing="16">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid CornerRadius="{StaticResource OverlayCornerRadius}"> <Grid CornerRadius="{StaticResource OverlayCornerRadius}">
<Image <Image
Width="120" Width="120"
AutomationProperties.AccessibilityView="Raw" AutomationProperties.AccessibilityView="Raw"
Source="ms-appx:///Assets/Settings/Modules/PT.png" /> Source="ms-appx:///Assets/Settings/Modules/PT.png" />
<Grid Background="{ThemeResource SmokeFillColorDefaultBrush}" /> <Grid Background="{ThemeResource SmokeFillColorDefaultBrush}" />
</Grid> </Grid>
<StackPanel <StackPanel
Grid.Column="1" Grid.Column="1"
VerticalAlignment="Center" VerticalAlignment="Center"
Orientation="Vertical"> Orientation="Vertical">
<TextBlock x:Uid="LearnWhatsNew" FontWeight="SemiBold" /> <TextBlock x:Uid="LearnWhatsNew" FontWeight="SemiBold" />
<TextBlock <TextBlock
Foreground="{ThemeResource TextFillColorSecondaryBrush}" Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Style="{StaticResource CaptionTextBlockStyle}" Style="{StaticResource CaptionTextBlockStyle}"
Text="{x:Bind ViewModel.PowerToysVersion, Mode=OneWay}" /> Text="{x:Bind ViewModel.PowerToysVersion, Mode=OneWay}" />
</StackPanel> </StackPanel>
</Grid> </Grid>
</Button> </Button>
<StackPanel <StackPanel
x:Name="TopButtonPanel" x:Name="TopButtonPanel"
Grid.Column="1" Grid.Column="1"
Orientation="Horizontal" Orientation="Horizontal"
Spacing="16"> Spacing="16">
<controls:ShortcutConflictControl AllHotkeyConflictsData="{x:Bind ViewModel.AllHotkeyConflictsData, Mode=OneWay}" /> <controls:ShortcutConflictControl AllHotkeyConflictsData="{x:Bind ViewModel.AllHotkeyConflictsData, Mode=OneWay}" />
<controls:CheckUpdateControl /> <controls:CheckUpdateControl />
</StackPanel> </StackPanel>
</Grid> </Grid>
<ScrollViewer x:Name="MainScrollViewer" Grid.Row="2"> <ScrollViewer x:Name="MainScrollViewer" Grid.Row="2">
<Grid> <Grid>
<!-- This grid is required to ensure that the content is horizontally aligned --> <!-- This grid is required to ensure that the content is horizontally aligned -->
<Grid <Grid
MaxWidth="{StaticResource PageMaxWidth}" MaxWidth="{StaticResource PageMaxWidth}"
Padding="0,0,20,48" Padding="0,0,20,48"
ColumnSpacing="16" ColumnSpacing="16"
RowSpacing="16"> RowSpacing="16">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<RowDefinition Height="*" /> <RowDefinition Height="*" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<controls:Card x:Uid="QuickAccessTitle" VerticalAlignment="Top"> <controls:Card x:Uid="QuickAccessTitle" VerticalAlignment="Top">
<Grid> <Grid>
<ItemsControl <ItemsControl
x:Name="QuickAccessItemsControl" x:Name="QuickAccessItemsControl"
Margin="8,0,12,12" Margin="8,0,12,12"
ItemsSource="{x:Bind ViewModel.ActionModules, Mode=OneWay}" ItemsSource="{x:Bind ViewModel.ActionModules, Mode=OneWay}"
Visibility="{x:Bind ViewModel.ActionModules.Count, Mode=OneWay, Converter={StaticResource DoubleToVisibilityConverter}}"> Visibility="{x:Bind ViewModel.ActionModules.Count, Mode=OneWay, Converter={StaticResource DoubleToVisibilityConverter}}">
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<tkcontrols:WrapPanel <tkcontrols:WrapPanel
Padding="12" Padding="12"
HorizontalSpacing="16" HorizontalSpacing="16"
VerticalSpacing="24" /> VerticalSpacing="24" />
</ItemsPanelTemplate> </ItemsPanelTemplate>
</ItemsControl.ItemsPanel> </ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate> <ItemsControl.ItemTemplate>
<DataTemplate x:DataType="viewmodels:DashboardListItem"> <DataTemplate x:DataType="viewmodels:DashboardListItem">
<ItemsControl IsTabStop="False" ItemsSource="{x:Bind DashboardModuleItems, Mode=OneWay}"> <ItemsControl IsTabStop="False" ItemsSource="{x:Bind DashboardModuleItems, Mode=OneWay}">
<ItemsControl.ItemTemplate> <ItemsControl.ItemTemplate>
<DataTemplate x:DataType="viewmodels:DashboardModuleButtonItem"> <DataTemplate x:DataType="viewmodels:DashboardModuleButtonItem">
<controls:FlyoutMenuButton AutomationProperties.Name="{x:Bind ButtonTitle}" Click="{x:Bind ButtonClickHandler}"> <controls:FlyoutMenuButton AutomationProperties.Name="{x:Bind ButtonTitle}" Click="{x:Bind ButtonClickHandler}">
<controls:FlyoutMenuButton.Content> <controls:FlyoutMenuButton.Content>
<TextBlock <TextBlock
Style="{StaticResource CaptionTextBlockStyle}" Style="{StaticResource CaptionTextBlockStyle}"
Text="{x:Bind ButtonTitle}" Text="{x:Bind ButtonTitle}"
TextAlignment="Center" TextAlignment="Center"
TextWrapping="Wrap" /> TextWrapping="Wrap" />
</controls:FlyoutMenuButton.Content> </controls:FlyoutMenuButton.Content>
<controls:FlyoutMenuButton.Icon> <controls:FlyoutMenuButton.Icon>
<Image Width="24"> <Image Width="24">
<Image.Source> <Image.Source>
<BitmapImage UriSource="{x:Bind ButtonGlyph}" /> <BitmapImage UriSource="{x:Bind ButtonGlyph}" />
</Image.Source> </Image.Source>
</Image> </Image>
</controls:FlyoutMenuButton.Icon> </controls:FlyoutMenuButton.Icon>
<ToolTipService.ToolTip> <ToolTipService.ToolTip>
<ToolTip Content="{x:Bind ButtonDescription}" /> <ToolTip Content="{x:Bind ButtonDescription}" />
</ToolTipService.ToolTip> </ToolTipService.ToolTip>
</controls:FlyoutMenuButton> </controls:FlyoutMenuButton>
</DataTemplate> </DataTemplate>
</ItemsControl.ItemTemplate> </ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<StackPanel Spacing="0" /> <StackPanel Spacing="0" />
</ItemsPanelTemplate> </ItemsPanelTemplate>
</ItemsControl.ItemsPanel> </ItemsControl.ItemsPanel>
</ItemsControl> </ItemsControl>
</DataTemplate> </DataTemplate>
</ItemsControl.ItemTemplate> </ItemsControl.ItemTemplate>
</ItemsControl> </ItemsControl>
<TextBlock <TextBlock
x:Uid="NoActionsToShow" x:Uid="NoActionsToShow"
Margin="12" Margin="12"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Foreground="{ThemeResource TextFillColorSecondaryBrush}" Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Visibility="{x:Bind ViewModel.ActionModules.Count, Mode=OneWay, Converter={StaticResource DoubleToInvertedVisibilityConverter}}" /> Visibility="{x:Bind ViewModel.ActionModules.Count, Mode=OneWay, Converter={StaticResource DoubleToInvertedVisibilityConverter}}" />
</Grid> </Grid>
</controls:Card> </controls:Card>
<controls:Card <controls:Card
x:Uid="ShortcutsOverview" x:Uid="ShortcutsOverview"
Grid.Row="1" Grid.Row="1"
VerticalAlignment="Top"> VerticalAlignment="Top">
<Grid> <Grid>
<ItemsRepeater <ItemsRepeater
Grid.Row="2" Grid.Row="2"
Margin="8,0,0,0" Margin="8,0,0,0"
ItemsSource="{x:Bind ViewModel.ShortcutModules, Mode=OneWay}"> ItemsSource="{x:Bind ViewModel.ShortcutModules, Mode=OneWay}">
<ItemsRepeater.Layout> <ItemsRepeater.Layout>
<StackLayout Orientation="Vertical" Spacing="0" /> <StackLayout Orientation="Vertical" Spacing="0" />
</ItemsRepeater.Layout> </ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate> <ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="viewmodels:DashboardListItem"> <DataTemplate x:DataType="viewmodels:DashboardListItem">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="32" /> <ColumnDefinition Width="32" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Image <Image
Width="16" Width="16"
Margin="0,10,0,0" Margin="0,10,0,0"
HorizontalAlignment="Left" HorizontalAlignment="Left"
@@ -245,30 +244,30 @@
AutomationProperties.AccessibilityView="Raw" AutomationProperties.AccessibilityView="Raw"
Source="{x:Bind Icon, Mode=OneWay}" Source="{x:Bind Icon, Mode=OneWay}"
ToolTipService.ToolTip="{x:Bind Label}" /> ToolTipService.ToolTip="{x:Bind Label}" />
<ItemsControl <ItemsControl
Grid.Column="1" Grid.Column="1"
IsTabStop="False" IsTabStop="False"
ItemTemplateSelector="{StaticResource ModuleItemTemplateSelector}" ItemTemplateSelector="{StaticResource ModuleItemTemplateSelector}"
ItemsSource="{x:Bind DashboardModuleItems, Mode=OneWay}"> ItemsSource="{x:Bind DashboardModuleItems, Mode=OneWay}">
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<StackPanel Spacing="0" /> <StackPanel Spacing="0" />
</ItemsPanelTemplate> </ItemsPanelTemplate>
</ItemsControl.ItemsPanel> </ItemsControl.ItemsPanel>
</ItemsControl> </ItemsControl>
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</ItemsRepeater.ItemTemplate> </ItemsRepeater.ItemTemplate>
</ItemsRepeater> </ItemsRepeater>
<TextBlock <TextBlock
x:Uid="NoShortcutsToShow" x:Uid="NoShortcutsToShow"
Margin="12" Margin="12"
HorizontalAlignment="Left" HorizontalAlignment="Left"
Foreground="{ThemeResource TextFillColorSecondaryBrush}" Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Visibility="{x:Bind ViewModel.ShortcutModules.Count, Mode=OneWay, Converter={StaticResource DoubleToInvertedVisibilityConverter}}" /> Visibility="{x:Bind ViewModel.ShortcutModules.Count, Mode=OneWay, Converter={StaticResource DoubleToInvertedVisibilityConverter}}" />
</Grid> </Grid>
</controls:Card> </controls:Card>
<controls:Card <controls:Card
x:Name="ModulesCard" x:Name="ModulesCard"
Title="Modules" Title="Modules"
Grid.RowSpan="2" Grid.RowSpan="2"
@@ -277,16 +276,16 @@
Padding="0" Padding="0"
VerticalAlignment="Top" VerticalAlignment="Top"
DividerVisibility="Collapsed"> DividerVisibility="Collapsed">
<ItemsRepeater <ItemsRepeater
x:Name="DashboardView" x:Name="DashboardView"
Grid.Row="2" Grid.Row="2"
ItemsSource="{x:Bind ViewModel.AllModules, Mode=OneWay}"> ItemsSource="{x:Bind ViewModel.AllModules, Mode=OneWay}">
<ItemsRepeater.Layout> <ItemsRepeater.Layout>
<StackLayout Orientation="Vertical" Spacing="0" /> <StackLayout Orientation="Vertical" Spacing="0" />
</ItemsRepeater.Layout> </ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate> <ItemsRepeater.ItemTemplate>
<DataTemplate x:DataType="viewmodels:DashboardListItem"> <DataTemplate x:DataType="viewmodels:DashboardListItem">
<tkcontrols:SettingsCard <tkcontrols:SettingsCard
MinHeight="0" MinHeight="0"
Padding="12,4,12,4" Padding="12,4,12,4"
AutomationProperties.Name="{x:Bind Label}" AutomationProperties.Name="{x:Bind Label}"
@@ -297,72 +296,71 @@
CornerRadius="0" CornerRadius="0"
IsClickEnabled="True" IsClickEnabled="True"
Tag="{x:Bind Tag}"> Tag="{x:Bind Tag}">
<tkcontrols:SettingsCard.Resources> <tkcontrols:SettingsCard.Resources>
<x:Double x:Key="SettingsCardWrapThreshold">0</x:Double> <x:Double x:Key="SettingsCardWrapThreshold">0</x:Double>
<x:Double x:Key="SettingsCardHeaderIconMaxSize">16</x:Double> <x:Double x:Key="SettingsCardHeaderIconMaxSize">16</x:Double>
</tkcontrols:SettingsCard.Resources> </tkcontrols:SettingsCard.Resources>
<tkcontrols:SettingsCard.Header> <tkcontrols:SettingsCard.Header>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind Label}" /> <TextBlock Text="{x:Bind Label}" />
<InfoBadge <InfoBadge
Margin="4,0,0,0" Margin="4,0,0,0"
Style="{StaticResource NewInfoBadge}" Style="{StaticResource NewInfoBadge}"
Visibility="{x:Bind IsNew, Converter={StaticResource BoolToVisibilityConverter}}" /> Visibility="{x:Bind IsNew, Converter={StaticResource BoolToVisibilityConverter}}" />
<FontIcon <FontIcon
Grid.Column="2" Grid.Column="2"
Width="20" Width="20"
Margin="0,0,-12,0" Margin="0,0,-12,0"
FontSize="16" FontSize="16"
Glyph="&#xE72E;" Glyph="&#xE72E;"
Visibility="{x:Bind IsLocked, Converter={StaticResource ReverseBoolToVisibilityConverter}, ConverterParameter=True}"> Visibility="{x:Bind IsLocked, Converter={StaticResource ReverseBoolToVisibilityConverter}, ConverterParameter=True}">
<ToolTipService.ToolTip> <ToolTipService.ToolTip>
<TextBlock x:Uid="GPO_SettingIsManaged_ToolTip" TextWrapping="WrapWholeWords" /> <TextBlock x:Uid="GPO_SettingIsManaged_ToolTip" TextWrapping="WrapWholeWords" />
</ToolTipService.ToolTip> </ToolTipService.ToolTip>
</FontIcon> </FontIcon>
</StackPanel> </StackPanel>
</tkcontrols:SettingsCard.Header> </tkcontrols:SettingsCard.Header>
<tkcontrols:SettingsCard.HeaderIcon> <tkcontrols:SettingsCard.HeaderIcon>
<ImageIcon> <ImageIcon>
<ImageIcon.Source> <ImageIcon.Source>
<BitmapImage UriSource="{x:Bind Icon}" /> <BitmapImage UriSource="{x:Bind Icon}" />
</ImageIcon.Source> </ImageIcon.Source>
</ImageIcon> </ImageIcon>
</tkcontrols:SettingsCard.HeaderIcon> </tkcontrols:SettingsCard.HeaderIcon>
<ToggleSwitch <ToggleSwitch
AutomationProperties.Name="{x:Bind Label}" AutomationProperties.Name="{x:Bind Label}"
IsEnabled="{x:Bind IsLocked, Converter={StaticResource BoolNegationConverter}, ConverterParameter=True, Mode=OneWay}" IsEnabled="{x:Bind IsLocked, Converter={StaticResource BoolNegationConverter}, ConverterParameter=True, Mode=OneWay}"
IsOn="{x:Bind IsEnabled, Mode=TwoWay}" IsOn="{x:Bind IsEnabled, Mode=TwoWay}"
OffContent="" OffContent=""
OnContent="" /> OnContent="" />
</tkcontrols:SettingsCard> </tkcontrols:SettingsCard>
</DataTemplate> </DataTemplate>
</ItemsRepeater.ItemTemplate> </ItemsRepeater.ItemTemplate>
</ItemsRepeater> </ItemsRepeater>
</controls:Card> </controls:Card>
</Grid>
</Grid> </Grid>
</ScrollViewer> </Grid>
<VisualStateManager.VisualStateGroups> </ScrollViewer>
<VisualStateGroup> <VisualStateManager.VisualStateGroups>
<VisualState> <VisualStateGroup>
<VisualState.StateTriggers> <VisualState>
<AdaptiveTrigger MinWindowWidth="840" /> <VisualState.StateTriggers>
</VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="840" />
</VisualState> </VisualState.StateTriggers>
<VisualState> </VisualState>
<VisualState.StateTriggers> <VisualState>
<AdaptiveTrigger MinWindowWidth="0" /> <VisualState.StateTriggers>
</VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="0" />
<VisualState.Setters> </VisualState.StateTriggers>
<Setter Target="TopButtonPanel.(Grid.Row)" Value="1" /> <VisualState.Setters>
<Setter Target="TopButtonPanel.Margin" Value="0,16,0,0" /> <Setter Target="TopButtonPanel.(Grid.Row)" Value="1" />
<Setter Target="TopButtonPanel.(Grid.Column)" Value="0" /> <Setter Target="TopButtonPanel.Margin" Value="0,16,0,0" />
<Setter Target="ModulesCard.(Grid.Column)" Value="0" /> <Setter Target="TopButtonPanel.(Grid.Column)" Value="0" />
<Setter Target="ModulesCard.(Grid.Row)" Value="2" /> <Setter Target="ModulesCard.(Grid.Column)" Value="0" />
</VisualState.Setters> <Setter Target="ModulesCard.(Grid.Row)" Value="2" />
</VisualState> </VisualState.Setters>
</VisualStateGroup> </VisualState>
</VisualStateManager.VisualStateGroups> </VisualStateGroup>
</Grid> </VisualStateManager.VisualStateGroups>
</Grid> </Grid>
</local:NavigatablePage> </local:NavigatablePage>