improve:UI

This commit is contained in:
2026-05-01 20:21:29 +08:00
parent 6fbd8b6fac
commit 54fd9bcde6
2 changed files with 29 additions and 0 deletions
@@ -256,6 +256,11 @@
<ui:NavigationViewItem.Icon> <ui:NavigationViewItem.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Sync}"/> <ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Sync}"/>
</ui:NavigationViewItem.Icon> </ui:NavigationViewItem.Icon>
<ui:NavigationViewItem.InfoBadge>
<ui:InfoBadge Style="{DynamicResource AttentionDotInfoBadgeStyle}"
MinWidth="8" MinHeight="8"
Visibility="Collapsed"/>
</ui:NavigationViewItem.InfoBadge>
</ui:NavigationViewItem> </ui:NavigationViewItem>
<!-- 实验性选项 --> <!-- 实验性选项 -->
@@ -27,6 +27,7 @@ namespace Ink_Canvas.Windows.SettingsViews
private bool _wasMaximized = false; private bool _wasMaximized = false;
private bool _isNavigating = false; private bool _isNavigating = false;
private bool _updateBadgeDismissed = false;
public SettingsWindow() public SettingsWindow()
{ {
@@ -76,6 +77,7 @@ namespace Ink_Canvas.Windows.SettingsViews
SetMaxSizeAndCenter(); SetMaxSizeAndCenter();
RegisterDpiChangedListener(); RegisterDpiChangedListener();
LoadPluginSettingsPages(); LoadPluginSettingsPages();
UpdateUpdateBadgeVisibility();
}; };
this.Closed += (sender, e) => this.Closed += (sender, e) =>
@@ -290,6 +292,12 @@ namespace Ink_Canvas.Windows.SettingsViews
pluginSettingsPage.CurrentPlugin = pluginInfo; pluginSettingsPage.CurrentPlugin = pluginInfo;
} }
NavigationViewControl.Header = selectedItem.Content; NavigationViewControl.Header = selectedItem.Content;
if (tag == "UpdatePage")
{
_updateBadgeDismissed = true;
UpdateUpdateBadgeVisibility();
}
} }
} }
} }
@@ -541,5 +549,21 @@ namespace Ink_Canvas.Windows.SettingsViews
{ {
return NavigationViewControl; return NavigationViewControl;
} }
public void UpdateUpdateBadgeVisibility()
{
try
{
var mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
bool hasUpdate = mainWindow != null && !string.IsNullOrEmpty(mainWindow.AvailableLatestVersion);
var item = FindNavigationViewItemByTag("UpdatePage");
var badge = item?.InfoBadge;
if (badge != null)
{
badge.Visibility = (hasUpdate && !_updateBadgeDismissed) ? Visibility.Visible : Visibility.Collapsed;
}
}
catch { }
}
} }
} }