Skip to content

Commit fae88e4

Browse files
committed
新增功能:导航按钮支持归纳到标题栏中
1 parent 65a99fc commit fae88e4

7 files changed

Lines changed: 51 additions & 8 deletions

File tree

Xdows-Security/MainWindow.Backdrop.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,12 +233,21 @@ public void UpdateBackgroundImageOpacity(double opacity)
233233
{
234234
_backgroundImageBrush?.Opacity = opacity;
235235
}
236-
237-
private void OnThemeChanged(FrameworkElement sender, object args)
236+
public async void UpdatePaneToggleButtonPosition()
238237
{
238+
239239
var settings = ApplicationData.Current.LocalSettings;
240-
if (settings.Values["AppBackdrop"] is string backdrop)
241-
ApplyBackdrop(backdrop, true);
240+
if (settings.Values.TryGetValue("IsPaneToggleButtonInTitleBar", out object isItInTitleBar))
241+
{
242+
AppTitleBar.IsPaneToggleButtonVisible = (bool)isItInTitleBar;
243+
nav.IsPaneToggleButtonVisible = !AppTitleBar.IsPaneToggleButtonVisible;
244+
}
245+
else
246+
{
247+
AppTitleBar.IsPaneToggleButtonVisible = false;
248+
nav.IsPaneToggleButtonVisible = true;
249+
250+
}
242251
}
243252
}
244253
}

Xdows-Security/MainWindow.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313
<TitleBar
1414
x:Name="AppTitleBar"
1515
Height="48"
16+
Margin="1.5,0,0,0"
17+
PaneToggleRequested="AppTitleBar_PaneToggleRequested"
1618
VerticalAlignment="Top">
17-
1819
<TitleBar.LeftHeader>
19-
<StackPanel Margin="13,0,0,0" Orientation="Horizontal" VerticalAlignment="Top">
20+
<StackPanel Margin="11.5,0,0,0" Orientation="Horizontal" VerticalAlignment="Top">
2021
<Image Source="logo.ico" Width="22" Height="22" Margin="0,0,8,0"/>
2122
<TextBlock x:Name="TitleText"
2223
FontSize="14"
@@ -28,6 +29,7 @@
2829
SelectionChanged="{x:Bind NavigationSelectionChanged}"
2930
IsBackButtonVisible="Collapsed"
3031
IsBackEnabled="False"
32+
IsPaneToggleButtonVisible="False"
3133
Loaded="Nav_Loaded"
3234
Margin="0,48,0,0">
3335
<NavigationView.MenuItems>

Xdows-Security/MainWindow.xaml.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ private async void MainWindow_Activated_FirstTime(object sender, WindowActivated
127127
settings.Values.TryGetValue("AppNavTheme", out object raw) && raw is double d ?
128128
(int)d : 0
129129
);
130+
UpdatePaneToggleButtonPosition();
130131
if (settings.Values.TryGetValue("TrayVisibleToggle", out object? trayVisibleToggle))
131132
{
132133
manager?.IsVisibleInTray = (bool)trayVisibleToggle;
@@ -276,5 +277,10 @@ private void Nav_Loaded(object sender, RoutedEventArgs e)
276277
{
277278
LoadLocalizerData();
278279
}
280+
281+
private void AppTitleBar_PaneToggleRequested(Microsoft.UI.Xaml.Controls.TitleBar sender, object args)
282+
{
283+
nav.IsPaneOpen = !nav.IsPaneOpen;
284+
}
279285
}
280286
}

Xdows-Security/Strings/en-US/Resources.resw

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,4 +1231,10 @@ If you do not accept it, please turn off the engine, or stop using and delete th
12311231
<data name="InterceptWindow_ReleaseButton.Content" xml:space="preserve">
12321232
<value>Release</value>
12331233
</data>
1234+
<data name="SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar.Header" xml:space="preserve">
1235+
<value>Compact UI</value>
1236+
</data>
1237+
<data name="SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar.Description" xml:space="preserve">
1238+
<value>Place the PaneToggleButton in the TitleBar</value>
1239+
</data>
12341240
</root>

Xdows-Security/Strings/zh-HANS/Resources.resw

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1230,4 +1230,10 @@
12301230
<data name="InterceptWindow_ReleaseButton.Content" xml:space="preserve">
12311231
<value>放行</value>
12321232
</data>
1233+
<data name="SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar.Header" xml:space="preserve">
1234+
<value>紧凑的界面</value>
1235+
</data>
1236+
<data name="SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar.Description" xml:space="preserve">
1237+
<value>将导航按钮置于标题栏</value>
1238+
</data>
12331239
</root>

Xdows-Security/Views/SettingsPage.xaml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,22 @@
2828
<ComboBoxItem l:Uids.Uid="SettingsPage_Appearance_Theme_ComboBox_Dark" />
2929
</ComboBox>
3030
</controls:SettingsCard>
31-
<controls:SettingsCard
31+
<controls:SettingsExpander
3232
l:Uids.Uid="SettingsPage_Appearance_Nav"
3333
HeaderIcon="{ui:FontIcon Glyph=&#xE700;}"
3434
x:Name="Appearance_Nav">
3535
<ComboBox x:Name="NavComboBox" SelectionChanged="NavComboBox_SelectionChanged">
3636
<ComboBoxItem l:Uids.Uid="SettingsPage_Appearance_Nav_Left" />
3737
<ComboBoxItem l:Uids.Uid="SettingsPage_Appearance_Nav_Top" />
3838
</ComboBox>
39-
</controls:SettingsCard>
39+
<controls:SettingsExpander.Items>
40+
<controls:SettingsCard
41+
l:Uids.Uid="SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar"
42+
HeaderIcon="{ui:FontIcon Glyph=&#xF165;}">
43+
<ToggleSwitch x:Name="SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar" Tag="IsPaneToggleButtonInTitleBar" Toggled="SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar_Toggled" />
44+
</controls:SettingsCard>
45+
</controls:SettingsExpander.Items>
46+
</controls:SettingsExpander>
4047
<controls:SettingsExpander
4148
l:Uids.Uid="SettingsPage_Appearance_Backdrop"
4249
HeaderIcon="{ui:FontIcon Glyph=&#xEF1F;}"

Xdows-Security/Views/SettingsPage.xaml.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ private void LoadScanSetting()
205205
DisabledVerifyToggle,
206206
Process_CompatibilityMode,
207207
Files_CompatibilityMode,
208+
SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar
208209
];
209210

210211
foreach (ToggleSwitch toggle in toggles)
@@ -919,5 +920,11 @@ private async void Boot_Save_Button_Click(Object sender, RoutedEventArgs e)
919920
}
920921
catch { }
921922
}
923+
924+
private async void SettingsPage_Appearance_Nav_IsPaneToggleButtonInTitleBar_Toggled(object sender, RoutedEventArgs e)
925+
{
926+
Toggled_SaveToggleData(sender, e);
927+
App.MainWindow?.UpdatePaneToggleButtonPosition();
928+
}
922929
}
923930
}

0 commit comments

Comments
 (0)