From cc9f58fb6ab3dbc67ba91de1c201361076e6eb9b Mon Sep 17 00:00:00 2001 From: PrefacedCorg <1876568293@qq.com> Date: Sun, 29 Mar 2026 14:21:27 +0800 Subject: [PATCH] add:NewNewSettings --- .../Windows/SettingsViews2/Pages/About.xaml | 17 ++++++ .../SettingsViews2/Pages/About.xaml.cs | 12 ++++ .../SettingsViews2/Pages/SettingsPage.xaml | 17 ++++++ .../SettingsViews2/Pages/SettingsPage.xaml.cs | 12 ++++ .../SettingsViews2/SettingsWindow2.xaml | 2 + .../SettingsViews2/SettingsWindow2.xaml.cs | 59 +++++++++++-------- 6 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 Ink Canvas/Windows/SettingsViews2/Pages/About.xaml create mode 100644 Ink Canvas/Windows/SettingsViews2/Pages/About.xaml.cs create mode 100644 Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml create mode 100644 Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml.cs diff --git a/Ink Canvas/Windows/SettingsViews2/Pages/About.xaml b/Ink Canvas/Windows/SettingsViews2/Pages/About.xaml new file mode 100644 index 00000000..3c15245a --- /dev/null +++ b/Ink Canvas/Windows/SettingsViews2/Pages/About.xaml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/Ink Canvas/Windows/SettingsViews2/Pages/About.xaml.cs b/Ink Canvas/Windows/SettingsViews2/Pages/About.xaml.cs new file mode 100644 index 00000000..120b8906 --- /dev/null +++ b/Ink Canvas/Windows/SettingsViews2/Pages/About.xaml.cs @@ -0,0 +1,12 @@ +using iNKORE.UI.WPF.Modern.Controls; + +namespace Ink_Canvas.Windows.SettingsViews2.Pages +{ + public partial class About : Page + { + public About() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml b/Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml new file mode 100644 index 00000000..9e0a1d74 --- /dev/null +++ b/Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml.cs b/Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml.cs new file mode 100644 index 00000000..410983f1 --- /dev/null +++ b/Ink Canvas/Windows/SettingsViews2/Pages/SettingsPage.xaml.cs @@ -0,0 +1,12 @@ +using iNKORE.UI.WPF.Modern.Controls; + +namespace Ink_Canvas.Windows.SettingsViews2.Pages +{ + public partial class SettingsPage : Page + { + public SettingsPage() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml b/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml index 6c72f78e..3d96e338 100644 --- a/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml +++ b/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml @@ -35,6 +35,8 @@ SelectionChanged="OnNavigationViewSelectionChanged" BackRequested="OnNavigationViewBackRequested" IsSettingsVisible="True" + IsBackButtonVisible="Visible" + IsBackEnabled="True" PaneDisplayMode="Auto" ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> diff --git a/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml.cs b/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml.cs index d970e918..5017a2d1 100644 --- a/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml.cs +++ b/Ink Canvas/Windows/SettingsViews2/SettingsWindow2.xaml.cs @@ -25,7 +25,9 @@ namespace Ink_Canvas.Windows.SettingsViews2 { "Typography", typeof(Typography) }, { "Theme", typeof(Theme) }, { "Colors", typeof(Colors) }, - { "Fonts", typeof(Fonts) } + { "Fonts", typeof(Fonts) }, + { "About", typeof(About) }, + { "Settings", typeof(SettingsPage) } }; // 默认选中第一个项目 @@ -39,8 +41,8 @@ namespace Ink_Canvas.Windows.SettingsViews2 { if (args.IsSettingsSelected) { - // 暂时导航到 Page1 作为设置页示例 - NavigateToPage("Page1"); + // 导航到设置页面 + NavigateToPage("Settings"); } else if (args.SelectedItem is iNKORE.UI.WPF.Modern.Controls.NavigationViewItem item) { @@ -48,7 +50,7 @@ namespace Ink_Canvas.Windows.SettingsViews2 if (item.MenuItems.Count == 0) { // 如果是子导航项,直接导航 - var tag = item.Tag as string; + string tag = item.Tag as string; if (!string.IsNullOrEmpty(tag)) { NavigateToPage(tag); @@ -81,16 +83,16 @@ namespace Ink_Canvas.Windows.SettingsViews2 private void OnControlsSearchBoxQuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args) { - var query = args.QueryText.ToLower(); - var allItems = new List(); - foreach (var item in NavigationViewControl.MenuItems) allItems.Add(item); - foreach (var item in NavigationViewControl.FooterMenuItems) allItems.Add(item); + string query = args.QueryText.ToLower(); + List allItems = new List(); + foreach (object item in NavigationViewControl.MenuItems) allItems.Add(item); + foreach (object item in NavigationViewControl.FooterMenuItems) allItems.Add(item); - foreach (var item in allItems) + foreach (object item in allItems) { if (item is iNKORE.UI.WPF.Modern.Controls.NavigationViewItem navItem) { - var content = navItem.Content?.ToString().ToLower(); + string content = navItem.Content?.ToString().ToLower(); if (content != null && content.Contains(query)) { NavigationViewControl.SelectedItem = navItem; @@ -104,18 +106,18 @@ namespace Ink_Canvas.Windows.SettingsViews2 { if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput) { - var query = sender.Text.ToLower(); - var suggestions = new List(); + string query = sender.Text.ToLower(); + List suggestions = new List(); - var allItems = new List(); - foreach (var item in NavigationViewControl.MenuItems) allItems.Add(item); - foreach (var item in NavigationViewControl.FooterMenuItems) allItems.Add(item); + List allItems = new List(); + foreach (object item in NavigationViewControl.MenuItems) allItems.Add(item); + foreach (object item in NavigationViewControl.FooterMenuItems) allItems.Add(item); - foreach (var item in allItems) + foreach (object item in allItems) { if (item is iNKORE.UI.WPF.Modern.Controls.NavigationViewItem navItem) { - var content = navItem.Content?.ToString(); + string content = navItem.Content?.ToString(); if (content != null && content.ToLower().Contains(query)) { suggestions.Add(content); @@ -138,13 +140,13 @@ namespace Ink_Canvas.Windows.SettingsViews2 private void OnRootFrameNavigated(object sender, NavigationEventArgs e) { // 更新NavigationView的选中状态 - var pageType = e.SourcePageType; - foreach (var kvp in _pageTypes) + Type pageType = rootFrame.SourcePageType; + foreach (KeyValuePair kvp in _pageTypes) { if (kvp.Value == pageType) { // 找到对应的NavigationViewItem - var item = FindNavigationViewItemByTag(kvp.Key); + NavigationViewItem item = FindNavigationViewItemByTag(kvp.Key); if (item != null) { NavigationViewControl.SelectedItem = item; @@ -157,8 +159,8 @@ namespace Ink_Canvas.Windows.SettingsViews2 private NavigationViewItem FindNavigationViewItemByTag(string tag) { - // 遍历所有菜单项 - foreach (var item in NavigationViewControl.MenuItems) + // 遍历所有主菜单项 + foreach (object item in NavigationViewControl.MenuItems) { if (item is NavigationViewItem navItem) { @@ -167,7 +169,7 @@ namespace Ink_Canvas.Windows.SettingsViews2 return navItem; } // 检查子菜单项 - foreach (var child in navItem.MenuItems) + foreach (object child in navItem.MenuItems) { if (child is NavigationViewItem childNavItem) { @@ -181,6 +183,17 @@ namespace Ink_Canvas.Windows.SettingsViews2 } } } + // 遍历页脚菜单项 + foreach (object item in NavigationViewControl.FooterMenuItems) + { + if (item is NavigationViewItem navItem) + { + if (navItem.Tag as string == tag) + { + return navItem; + } + } + } return null; } }