master
xaml 176 lines 10.2 KB
Raw
1 <Page
2 x:Class="WslSettings.Views.Settings.ShellPage"
3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5 xmlns:animations="using:CommunityToolkit.WinUI.Animations"
6 xmlns:helpers="using:WslSettings.Helpers"
7 xmlns:behaviors="using:WslSettings.Behaviors"
8 xmlns:i="using:Microsoft.Xaml.Interactivity"
9 Loaded="OnLoaded">
10
11 <Grid>
12 <Grid.RowDefinitions>
13 <RowDefinition Height="Auto" />
14 <RowDefinition Height="*" />
15 </Grid.RowDefinitions>
16 <Button
17 x:Name="PaneToggleBtn"
18 Width="48"
19 HorizontalAlignment="Left"
20 VerticalAlignment="Center"
21 Click="PaneToggleBtn_Click"
22 Style="{StaticResource PaneToggleButtonStyle}" />
23 <Grid Grid.Row="0"
24 x:Name="AppTitleBar"
25 Margin="16,0"
26 Canvas.ZIndex="1"
27 Height="{Binding ElementName=NavigationViewControl, Path=CompactPaneLength}"
28 IsHitTestVisible="True"
29 VerticalAlignment="Top"
30 HorizontalAlignment="Stretch">
31 <animations:Implicit.Animations>
32 <animations:OffsetAnimation Duration="0:0:0.3" />
33 </animations:Implicit.Animations>
34 <Grid.ColumnDefinitions>
35 <ColumnDefinition Width="Auto" />
36 <ColumnDefinition Width="*" />
37 </Grid.ColumnDefinitions>
38 <Image Grid.Column="0"
39 Source="/Assets/wsl.ico"
40 VerticalAlignment="Center"
41 HorizontalAlignment="Left"
42 Width="16"
43 Height="16" />
44 <TextBlock Grid.Column="1"
45 x:Name="AppTitleBarText"
46 VerticalAlignment="Center"
47 TextWrapping="NoWrap"
48 Style="{StaticResource CaptionTextBlockStyle}"
49 Margin="16,0,0,0"/>
50 </Grid>
51 <NavigationView
52 x:Name="NavigationViewControl"
53 Grid.Row="1"
54 Canvas.ZIndex="0"
55 CompactModeThresholdWidth="1007"
56 DisplayModeChanged="NavigationViewControl_DisplayModeChanged"
57 ExpandedModeThresholdWidth="1007"
58 Header="{x:Bind ((ContentControl)ViewModel.Selected).Content, Mode=OneWay}"
59 IsBackButtonVisible="Collapsed"
60 IsBackEnabled="{x:Bind ViewModel.IsBackEnabled, Mode=OneWay}"
61 IsPaneToggleButtonVisible="False"
62 IsSettingsVisible="False"
63 ItemInvoked="NavigationViewControl_ItemInvoked"
64 SelectedItem="{x:Bind ViewModel.Selected, Mode=OneWay}">
65 <NavigationView.Resources>
66 <ResourceDictionary>
67 <ResourceDictionary.ThemeDictionaries>
68 <ResourceDictionary x:Key="Dark">
69 <SolidColorBrush x:Key="NavigationViewContentGridBorderBrush" Color="{StaticResource NavigationViewExpandedPaneBackground}" />
70 <SolidColorBrush x:Key="NavigationViewContentBackground" Color="{StaticResource NavigationViewExpandedPaneBackground}" />
71 </ResourceDictionary>
72 <ResourceDictionary x:Key="Light">
73 <SolidColorBrush x:Key="NavigationViewContentGridBorderBrush" Color="{StaticResource NavigationViewExpandedPaneBackground}" />
74 <SolidColorBrush x:Key="NavigationViewContentBackground" Color="{StaticResource NavigationViewExpandedPaneBackground}" />
75 </ResourceDictionary>
76 <ResourceDictionary x:Key="HighContrast">
77 <SolidColorBrush x:Key="NavigationViewContentGridBorderBrush" Color="{ThemeResource SystemColorWindowColor}" />
78 <SolidColorBrush x:Key="NavigationViewContentBackground" Color="{ThemeResource SystemColorWindowColor}" />
79 </ResourceDictionary>
80 </ResourceDictionary.ThemeDictionaries>
81 </ResourceDictionary>
82 </NavigationView.Resources>
83 <NavigationView.MenuItems>
84 <!--
85 TODO: Update item titles by updating <x:Uid>.Content entries in Strings/en-us/Resources.resw.
86 https://docs.microsoft.com/windows/uwp/app-resources/localize-strings-ui-manifest#refer-to-a-string-resource-identifier-from-xaml
87
88 TODO: Update item icons by updating FontIcon.Glyph properties.
89 https://docs.microsoft.com/windows/apps/design/style/segoe-fluent-icons-font#icon-list
90 -->
91 <NavigationViewItem x:Uid="Settings_Shell_MemAndProc" helpers:NavigationHelper.NavigateTo="WslSettings.ViewModels.Settings.MemAndProcViewModel">
92 <NavigationViewItem.Icon>
93 <FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xe950;"/>
94 </NavigationViewItem.Icon>
95 </NavigationViewItem>
96 <NavigationViewItem x:Uid="Settings_Shell_FileSystem" helpers:NavigationHelper.NavigateTo="WslSettings.ViewModels.Settings.FileSystemViewModel">
97 <NavigationViewItem.Icon>
98 <FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xf12b;"/>
99 </NavigationViewItem.Icon>
100 </NavigationViewItem>
101 <NavigationViewItem x:Uid="Settings_Shell_Networking" helpers:NavigationHelper.NavigateTo="WslSettings.ViewModels.Settings.NetworkingViewModel">
102 <NavigationViewItem.Icon>
103 <FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xe88a;"/>
104 </NavigationViewItem.Icon>
105 </NavigationViewItem>
106 <NavigationViewItem x:Uid="Settings_Shell_OptionalFeatures" helpers:NavigationHelper.NavigateTo="WslSettings.ViewModels.Settings.OptionalFeaturesViewModel">
107 <NavigationViewItem.Icon>
108 <FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xe713;"/>
109 </NavigationViewItem.Icon>
110 </NavigationViewItem>
111 <NavigationViewItem x:Uid="Settings_Shell_Developer" helpers:NavigationHelper.NavigateTo="WslSettings.ViewModels.Settings.DeveloperViewModel">
112 <NavigationViewItem.Icon>
113 <FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xe943;"/>
114 </NavigationViewItem.Icon>
115 </NavigationViewItem>
116 </NavigationView.MenuItems>
117 <NavigationView.FooterMenuItems>
118 <!--
119 TODO: Update item titles by updating <x:Uid>.Content entries in Strings/en-us/Resources.resw.
120 https://docs.microsoft.com/windows/uwp/app-resources/localize-strings-ui-manifest#refer-to-a-string-resource-identifier-from-xaml
121
122 TODO: Update item icons by updating FontIcon.Glyph properties.
123 https://docs.microsoft.com/windows/apps/design/style/segoe-fluent-icons-font#icon-list
124 -->
125 <NavigationViewItem x:Uid="Settings_Shell_LaunchWSL" Tag="LaunchWSL" SelectsOnInvoked="False">
126 <NavigationViewItem.Icon>
127 <BitmapIcon ShowAsMonochrome="False" UriSource="/Assets/wsl.ico" />
128 </NavigationViewItem.Icon>
129 </NavigationViewItem>
130 <NavigationViewItem x:Uid="Settings_Shell_OOBE" Tag="OOBE" SelectsOnInvoked="False">
131 <NavigationViewItem.Icon>
132 <FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xf133;"/>
133 </NavigationViewItem.Icon>
134 </NavigationViewItem>
135 <NavigationViewItem x:Uid="Settings_Shell_About" helpers:NavigationHelper.NavigateTo="WslSettings.ViewModels.Settings.AboutViewModel">
136 <NavigationViewItem.Icon>
137 <FontIcon FontFamily="{StaticResource SymbolThemeFontFamily}" Glyph="&#xe946;"/>
138 </NavigationViewItem.Icon>
139 </NavigationViewItem>
140 </NavigationView.FooterMenuItems>
141 <NavigationView.HeaderTemplate>
142 <DataTemplate>
143 <Grid>
144 <TextBlock
145 Text="{Binding}"
146 Style="{ThemeResource TitleTextBlockStyle}" />
147 </Grid>
148 </DataTemplate>
149 </NavigationView.HeaderTemplate>
150 <i:Interaction.Behaviors>
151 <behaviors:NavigationViewHeaderBehavior
152 DefaultHeader="{x:Bind ((ContentControl)ViewModel.Selected).Content, Mode=OneWay}">
153 <behaviors:NavigationViewHeaderBehavior.DefaultHeaderTemplate>
154 <DataTemplate>
155 <Grid>
156 <TextBlock
157 Text="{Binding}"
158 Style="{ThemeResource TitleTextBlockStyle}" />
159 </Grid>
160 </DataTemplate>
161 </behaviors:NavigationViewHeaderBehavior.DefaultHeaderTemplate>
162 </behaviors:NavigationViewHeaderBehavior>
163 </i:Interaction.Behaviors>
164 <Grid>
165 <Grid.RowDefinitions>
166 <RowDefinition Height="*" />
167 <RowDefinition Height="Auto" />
168 </Grid.RowDefinitions>
169 <Frame x:Name="NavigationFrame" />
170 <Button x:Uid="Settings_ApplyChangesButton" Grid.Row="1" Style="{StaticResource AccentButtonStyle}" HorizontalAlignment="Right" Margin="0,8,16,8"
171 Visibility="{x:Bind HasPendingChanges, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}"
172 Click="ApplyChanges_Click"/>
173 </Grid>
174 </NavigationView>
175 </Grid>
176 </Page>