Add CODE_WIKI and update localization

Add a comprehensive CODE_WIKI.md documenting project architecture, modules, startup flow, plugin system, testing and developer workflows. Update localization resources (en-US.json, zh-CN.json) with new/translated keys for wallpaper controls (custom color UI), material & color settings (semantic roles, surfaces, refresh/polling state), appearance (corner radius), status bar font size options, privacy policy text, component library labels, clock settings, and new language entry (Korean). Also modify settings-related ViewModels and Settings page views to surface these new features and texts (MaterialColorSettingsPageViewModel.cs, SettingsViewModels.cs, WallpaperSettingsPageViewModel.cs, MainWindow.SettingsHardCut.Stubs.cs, ComponentsSettingsPage.axaml, WallpaperSettingsPage.axaml).
This commit is contained in:
lincube
2026-05-07 01:07:15 +08:00
parent 6b1c738d8c
commit aa7e15d967
9 changed files with 1048 additions and 22 deletions

View File

@@ -57,6 +57,8 @@
"settings.wallpaper.refresh.12h": "12 hours",
"settings.wallpaper.refresh.24h": "24 hours",
"settings.wallpaper.color_label": "Wallpaper Color",
"settings.wallpaper.custom_color_tooltip": "Custom color",
"settings.wallpaper.custom_color_apply": "Apply",
"settings.wallpaper.placement_label": "Placement",
"settings.wallpaper.placement_desc": "Adjust how the image fills the desktop.",
"settings.wallpaper.pick_button": "Browse Files",
@@ -332,6 +334,7 @@
"settings.region.language_zh": "Chinese",
"settings.region.language_en": "English",
"settings.region.language_ja": "Japanese",
"settings.region.language_ko": "Korean",
"settings.region.timezone_header": "Time Zone",
"settings.region.timezone_desc": "Select a time zone. Clock and calendar widgets will follow this zone.",
"settings.region.applied_format": "Language switched to: {0}",
@@ -370,8 +373,11 @@
"settings.appearance.theme_color_preview.app": "Currently previewing colors extracted from the app wallpaper.",
"settings.appearance.theme_color_preview.system": "Currently previewing colors extracted from the system wallpaper.",
"settings.appearance.theme_color_preview.fallback": "No usable wallpaper was found. The app is using a fallback accent.",
"settings.appearance.corner_radius.label": "Global corner radius style",
"settings.appearance.corner_radius.description": "Select a fixed corner radius style inspired by Xiaomi HyperOS.",
"component.color_scheme.follow_system": "Follow system color scheme",
"component.color_scheme.native": "Use component custom color scheme",
"component.settings.color_scheme": "Color Scheme",
"settings.appearance.system_material.auto": "Auto (recommended)",
"settings.appearance.system_material.none": "None",
"settings.appearance.system_material.mica": "Mica",
@@ -398,6 +404,37 @@
"settings.material_color.system_material.none": "None",
"settings.material_color.system_material.mica": "Mica",
"settings.material_color.system_material.acrylic": "Acrylic",
"settings.material_color.source.fallback": "Fallback",
"settings.material_color.role.accent": "Accent",
"settings.material_color.role.primary": "Primary",
"settings.material_color.role.secondary": "Secondary",
"settings.material_color.role.surface": "Surface",
"settings.material_color.role.text": "Text",
"settings.material_color.role.toggle": "Toggle",
"settings.material_color.surface.detail_format": "A={0:X2} Blur={1:0}",
"settings.material_color.title": "Material & Color",
"settings.material_color.description": "Unify Monet, wallpaper colors, semantic roles, and material surfaces.",
"settings.material_color.source.label": "Color source",
"settings.material_color.source.description": "Choose the single source used by app surfaces, components, and plugins.",
"settings.material_color.custom_seed.label": "Custom Monet seed",
"settings.material_color.wallpaper_source.label": "Wallpaper color source",
"settings.material_color.wallpaper_seed.label": "Seed",
"settings.material_color.system_material.label": "System material",
"settings.material_color.system_material.description": "Apply the selected material mode to windows and host surfaces.",
"settings.material_color.native_events.label": "Native wallpaper change events",
"settings.material_color.native_events.description": "Use OS wallpaper notifications first and keep polling as fallback.",
"settings.material_color.native_events.active": "Native wallpaper events active",
"settings.material_color.native_events.polling": "Polling fallback active",
"settings.material_color.native_events.inactive": "Wallpaper monitoring inactive",
"settings.material_color.refresh_interval.label": "Polling interval",
"settings.material_color.refresh_now": "Refresh colors",
"settings.material_color.preview.header": "Unified preview",
"settings.material_color.source_status.header": "Resolved source",
"settings.material_color.semantic.header": "Semantic colors",
"settings.material_color.surfaces.header": "Material surfaces",
"settings.material_color.wallpaper_source.auto": "Auto",
"settings.material_color.wallpaper_source.app": "App wallpaper",
"settings.material_color.wallpaper_source.system": "System wallpaper",
"settings.wallpaper.placement.fill": "Fill",
"settings.wallpaper.placement.fit": "Fit",
"settings.wallpaper.placement.stretch": "Stretch",
@@ -430,6 +467,11 @@
"settings.status_bar.network_speed_mode.download": "Download only",
"settings.status_bar.network_speed_transparent_background_label": "Transparent background",
"settings.status_bar.show_network_type_icon_label": "Show network type icon",
"settings.status_bar.clock_font_size_label": "Clock font size",
"settings.status_bar.network_speed_font_size_label": "Network speed font size",
"settings.status_bar.font_size.small": "Small",
"settings.status_bar.font_size.medium": "Medium",
"settings.status_bar.font_size.large": "Large",
"settings.status_bar.shadow_header": "Status Bar Shadow",
"settings.status_bar.shadow_desc": "Add shadow effect to the status bar for better visibility of transparent components.",
"settings.status_bar.shadow_enabled_label": "Enable shadow",
@@ -453,6 +495,7 @@
"settings.components.corner_radius.header": "Corner Design",
"settings.components.corner_radius.label": "Component Corner Radius",
"settings.components.corner_radius.description": "Adjust the shared corner radius from a square edge to a capsule-like shape, and expand the internal safe area with it.",
"settings.components.corner_radius.spec_tooltip": "View Corner Radius Specification",
"settings.update.title": "Update",
"settings.update.current_version_label": "Current Version",
"settings.update.latest_version_label": "Latest Release",
@@ -597,6 +640,11 @@
"settings.notifications.test.message_error": "Something went wrong. Please try again.",
"settings.notifications.test.title_default": "Test notification",
"settings.notifications.test.message_default": "This is a test notification.",
"settings.privacy.policy_title": "Privacy Policy",
"settings.privacy.policy_description": "LanMountainDesktop values your privacy. We do not collect personal data without your consent.",
"settings.privacy.policy_loading": "Loading privacy policy...",
"settings.privacy.policy_error": "Failed to load privacy policy.",
"settings.privacy.telemetry_id_title": "Telemetry ID",
"settings.dev.title": "Developer",
"settings.dev.description": "Debugging, diagnostics, and local plugin development options.",
"settings.dev.infobar.title": "Preview and developer features",
@@ -813,9 +861,13 @@
"tooltip.component_library": "Edit Desktop",
"component_library.title": "Widgets",
"component_library.empty": "Swipe to pick a category, tap to open, then drag a widget onto the desktop.",
"component_library.components_none": "No components.",
"component_library.drag_hint": "Drag to place",
"component_library.preview_unavailable": "Preview unavailable",
"component.delete": "Delete",
"component.edit": "Edit",
"component.move": "Move",
"component.resize": "Resize",
"component.editor.instance_scope": "Changes apply to this component instance only.",
"component.editor.info_header": "Component Info",
"component.editor.id_label": "Component ID",
@@ -886,6 +938,9 @@
"desktop_clock.settings.desc": "Choose the time zone for the single clock.",
"desktop_clock.settings.timezone_label": "Time Zone",
"desktop_clock.settings.second_mode_label": "Second Hand",
"clock.settings.desc": "Configure the time zone and second hand animation.",
"clock.settings.timezone": "Time Zone",
"clock.settings.second_mode_label": "Second Hand",
"clock.second_mode.tick": "Tick",
"clock.second_mode.sweep": "Sweep",
"poetry.widget.loading_content": "Loading poetry...",

View File

@@ -72,6 +72,7 @@
"settings.wallpaper.video_not_found": "未找到视频壁纸文件。",
"settings.wallpaper.video_player_unavailable": "视频播放器不可用。",
"settings.wallpaper.video_play_failed_format": "播放视频壁纸失败:{0}",
"settings.wallpaper.video_mode": "视频壁纸使用自动填充模式。",
"settings.wallpaper.unsupported_file": "所选文件类型不受支持。",
"settings.wallpaper.apply_failed_format": "应用壁纸失败:{0}",
"settings.wallpaper.mode_format": "壁纸模式:{0}。",
@@ -333,6 +334,7 @@
"settings.region.language_zh": "中文",
"settings.region.language_en": "英文",
"settings.region.language_ja": "日文",
"settings.region.language_ko": "韩文",
"settings.region.timezone_header": "时区",
"settings.region.timezone_desc": "选择时区。时钟与日历组件会使用该时区。",
"settings.region.applied_format": "语言已切换为:{0}",
@@ -371,12 +373,15 @@
"settings.appearance.theme_color_preview.app": "当前正在预览从应用壁纸提取的颜色。",
"settings.appearance.theme_color_preview.system": "当前正在预览从系统壁纸提取的颜色。",
"settings.appearance.theme_color_preview.fallback": "没有可用壁纸,当前使用回退强调色。",
"settings.appearance.corner_radius.label": "全局圆角样式",
"settings.appearance.corner_radius.description": "选择固定的全局圆角样式,受 HyperOS 启发。",
"component.color_scheme.follow_system": "跟随系统配色",
"component.color_scheme.native": "使用组件自定义配色",
"component.settings.color_scheme": "配色方案",
"settings.appearance.system_material.auto": "自动(推荐)",
"settings.appearance.system_material.none": "无",
"settings.appearance.system_material.mica": "Mica",
"settings.appearance.system_material.acrylic": "Acrylic",
"settings.appearance.system_material.mica": "云母",
"settings.appearance.system_material.acrylic": "亚克力",
"settings.appearance.system_material_desc.switchable": "将所选材质应用到窗口、Dock、状态栏和组件宿主背板。",
"settings.appearance.system_material_desc.fixed": "当前系统仅提供这里列出的材质模式。",
"settings.appearance.system_material_desc.auto": "自动模式会在 Windows 11 优先使用 Mica在 Windows 10 优先使用 Acrylic不可用时回退到无材质。",
@@ -391,14 +396,46 @@
"settings.appearance.preview.apply_seed": "应用",
"settings.appearance.preview.wallpaper_candidates": "壁纸候选主题色",
"settings.appearance.preview.wallpaper_current": "当前",
"settings.material_color.preview.wallpaper_current": "Current",
"settings.material_color.theme_color_mode.neutral": "Default neutral",
"settings.material_color.theme_color_mode.user": "User theme color Monet",
"settings.material_color.theme_color_mode.wallpaper": "Wallpaper Monet",
"settings.material_color.system_material.auto": "Auto (recommended)",
"settings.material_color.system_material.none": "None",
"settings.material_color.preview.wallpaper_current": "当前",
"settings.material_color.theme_color_mode.neutral": "默认中性",
"settings.material_color.theme_color_mode.user": "用户主题色 Monet",
"settings.material_color.theme_color_mode.wallpaper": "壁纸 Monet",
"settings.material_color.system_material.auto": "自动(推荐)",
"settings.material_color.system_material.none": "",
"settings.material_color.system_material.mica": "Mica",
"settings.material_color.system_material.acrylic": "Acrylic", "settings.wallpaper.placement.fill": "填充",
"settings.material_color.system_material.acrylic": "亚克力",
"settings.material_color.source.fallback": "回退",
"settings.material_color.role.accent": "强调色",
"settings.material_color.role.primary": "主色",
"settings.material_color.role.secondary": "次色",
"settings.material_color.role.surface": "表面",
"settings.material_color.role.text": "文字",
"settings.material_color.role.toggle": "开关",
"settings.material_color.surface.detail_format": "Alpha={0:X2} 模糊={1:0}",
"settings.material_color.title": "材质与颜色",
"settings.material_color.description": "统一莫奈色、壁纸颜色、语义角色和材质表面。",
"settings.material_color.source.label": "颜色来源",
"settings.material_color.source.description": "选择应用表面、组件和插件使用的单一来源。",
"settings.material_color.custom_seed.label": "自定义莫奈种子色",
"settings.material_color.wallpaper_source.label": "壁纸颜色来源",
"settings.material_color.wallpaper_seed.label": "种子色",
"settings.material_color.system_material.label": "系统材质",
"settings.material_color.system_material.description": "将所选材质模式应用到窗口和宿主表面。",
"settings.material_color.native_events.label": "原生壁纸变更事件",
"settings.material_color.native_events.description": "优先使用操作系统壁纸通知,并保持轮询作为回退。",
"settings.material_color.native_events.active": "原生壁纸事件已激活",
"settings.material_color.native_events.polling": "轮询回退已激活",
"settings.material_color.native_events.inactive": "壁纸监控未激活",
"settings.material_color.refresh_interval.label": "轮询间隔",
"settings.material_color.refresh_now": "刷新颜色",
"settings.material_color.preview.header": "统一预览",
"settings.material_color.source_status.header": "已解析来源",
"settings.material_color.semantic.header": "语义颜色",
"settings.material_color.surfaces.header": "材质表面",
"settings.material_color.wallpaper_source.auto": "自动",
"settings.material_color.wallpaper_source.app": "应用壁纸",
"settings.material_color.wallpaper_source.system": "系统壁纸",
"settings.wallpaper.placement.fill": "填充",
"settings.wallpaper.placement.fit": "适应",
"settings.wallpaper.placement.stretch": "拉伸",
"settings.wallpaper.placement.center": "居中",
@@ -430,6 +467,11 @@
"settings.status_bar.network_speed_mode.download": "仅下载",
"settings.status_bar.network_speed_transparent_background_label": "透明背景",
"settings.status_bar.show_network_type_icon_label": "显示网络类型图标",
"settings.status_bar.clock_font_size_label": "时钟字号",
"settings.status_bar.network_speed_font_size_label": "网速字号",
"settings.status_bar.font_size.small": "小",
"settings.status_bar.font_size.medium": "中",
"settings.status_bar.font_size.large": "大",
"settings.status_bar.shadow_header": "状态栏阴影",
"settings.status_bar.shadow_desc": "为状态栏添加阴影效果,使透明背景的组件更清晰。",
"settings.status_bar.shadow_enabled_label": "启用阴影",
@@ -453,6 +495,7 @@
"settings.components.corner_radius.header": "圆角设计",
"settings.components.corner_radius.label": "组件圆角",
"settings.components.corner_radius.description": "将组件容器圆角从直角连续调到接近胶囊的形态,并随圆角增大同步扩展内部安全区。",
"settings.components.corner_radius.spec_tooltip": "查看圆角规范",
"settings.update.title": "更新",
"settings.update.current_version_label": "当前版本",
"settings.update.latest_version_label": "最新发布",
@@ -605,6 +648,11 @@
"settings.notifications.test.message_error": "操作失败,请重试。",
"settings.notifications.test.title_default": "测试通知",
"settings.notifications.test.message_default": "这是一条测试通知。",
"settings.privacy.policy_title": "隐私政策",
"settings.privacy.policy_description": "阑山桌面尊重您的隐私。未经您的同意,我们不会收集个人数据。",
"settings.privacy.policy_loading": "正在加载隐私政策...",
"settings.privacy.policy_error": "加载隐私政策失败。",
"settings.privacy.telemetry_id_title": "遥测 ID",
"settings.dev.title": "开发者",
"settings.dev.description": "调试、诊断与本地插件开发相关选项。",
"settings.dev.infobar.title": "预览与开发者功能",
@@ -813,9 +861,13 @@
"tooltip.component_library": "桌面编辑",
"component_library.title": "桌面编辑",
"component_library.empty": "左右滑动选择类别,点击进入,然后拖动组件到桌面放置。",
"component_library.components_none": "暂无组件",
"component_library.drag_hint": "拖动放置",
"component_library.preview_unavailable": "预览不可用",
"component.delete": "删除",
"component.edit": "编辑",
"component.move": "移动",
"component.resize": "调整大小",
"component.editor.instance_scope": "设置仅对当前组件实例生效。",
"component.editor.info_header": "组件信息",
"component.editor.id_label": "组件 ID",
@@ -885,6 +937,9 @@
"desktop_clock.settings.desc": "为单时钟选择时区。",
"desktop_clock.settings.timezone_label": "时区",
"desktop_clock.settings.second_mode_label": "秒针方式",
"clock.settings.desc": "配置时钟组件的时区和秒针动画。",
"clock.settings.timezone": "时区",
"clock.settings.second_mode_label": "秒针方式",
"clock.second_mode.tick": "跳针",
"clock.second_mode.sweep": "扫针",
"poetry.widget.loading_content": "正在加载诗词",

View File

@@ -13,12 +13,12 @@ namespace LanMountainDesktop.ViewModels;
public sealed class MaterialSurfacePreviewOption
{
public MaterialSurfacePreviewOption(string label, MaterialSurfaceSnapshot surface)
public MaterialSurfacePreviewOption(string label, MaterialSurfaceSnapshot surface, string detailFormat)
{
Label = label;
BackgroundBrush = new SolidColorBrush(surface.BackgroundColor);
BorderBrush = new SolidColorBrush(surface.BorderColor);
Detail = $"A={surface.BackgroundColor.A:X2} Blur={surface.BlurRadius:0}";
Detail = string.Format(CultureInfo.CurrentCulture, detailFormat, surface.BackgroundColor.A, surface.BlurRadius);
}
public string Label { get; }
@@ -232,6 +232,30 @@ public sealed partial class MaterialColorSettingsPageViewModel : ViewModelBase
[ObservableProperty]
private string _materialAcrylicText = string.Empty;
[ObservableProperty]
private string _sourceFallbackText = string.Empty;
[ObservableProperty]
private string _colorRoleAccentText = string.Empty;
[ObservableProperty]
private string _colorRolePrimaryText = string.Empty;
[ObservableProperty]
private string _colorRoleSecondaryText = string.Empty;
[ObservableProperty]
private string _colorRoleSurfaceText = string.Empty;
[ObservableProperty]
private string _colorRoleTextText = string.Empty;
[ObservableProperty]
private string _colorRoleToggleText = string.Empty;
[ObservableProperty]
private string _surfaceDetailFormat = string.Empty;
public void Load()
{
var theme = _settingsFacade.Theme.Get();
@@ -401,12 +425,12 @@ public sealed partial class MaterialColorSettingsPageViewModel : ViewModelBase
ColorRolePreviews =
[
new MaterialColorRolePreviewOption("Accent", snapshot.Palette.Accent),
new MaterialColorRolePreviewOption("Primary", snapshot.Palette.Primary),
new MaterialColorRolePreviewOption("Secondary", snapshot.Palette.Secondary),
new MaterialColorRolePreviewOption("Surface", snapshot.Palette.SurfaceRaised),
new MaterialColorRolePreviewOption("Text", snapshot.Palette.TextPrimary),
new MaterialColorRolePreviewOption("Toggle", snapshot.Palette.ToggleOn)
new MaterialColorRolePreviewOption(ColorRoleAccentText, snapshot.Palette.Accent),
new MaterialColorRolePreviewOption(ColorRolePrimaryText, snapshot.Palette.Primary),
new MaterialColorRolePreviewOption(ColorRoleSecondaryText, snapshot.Palette.Secondary),
new MaterialColorRolePreviewOption(ColorRoleSurfaceText, snapshot.Palette.SurfaceRaised),
new MaterialColorRolePreviewOption(ColorRoleTextText, snapshot.Palette.TextPrimary),
new MaterialColorRolePreviewOption(ColorRoleToggleText, snapshot.Palette.ToggleOn)
];
SurfacePreviews = snapshot.Surfaces.Values
@@ -415,7 +439,7 @@ public sealed partial class MaterialColorSettingsPageViewModel : ViewModelBase
MaterialSurfaceRole.DockBackground or
MaterialSurfaceRole.DesktopComponentHost or
MaterialSurfaceRole.OverlayPanel)
.Select(surface => new MaterialSurfacePreviewOption(surface.Role.ToString(), surface))
.Select(surface => new MaterialSurfacePreviewOption(surface.Role.ToString(), surface, SurfaceDetailFormat))
.ToArray();
}
@@ -449,7 +473,7 @@ public sealed partial class MaterialColorSettingsPageViewModel : ViewModelBase
MaterialColorSourceKind.AppWallpaper => WallpaperSourceAppText,
MaterialColorSourceKind.SystemWallpaper => WallpaperSourceSystemText,
MaterialColorSourceKind.WallpaperAuto => WallpaperSourceAutoText,
_ => L("settings.material_color.source.fallback", "Fallback")
_ => SourceFallbackText
};
}
@@ -550,9 +574,17 @@ public sealed partial class MaterialColorSettingsPageViewModel : ViewModelBase
WallpaperSourceAppText = L("settings.material_color.wallpaper_source.app", "App wallpaper");
WallpaperSourceSystemText = L("settings.material_color.wallpaper_source.system", "System wallpaper");
MaterialNoneText = L("settings.material_color.system_material.none", "None");
MaterialAutoText = L("settings.material_color.system_material.auto", "Auto");
MaterialAutoText = L("settings.material_color.system_material.auto", "Auto (recommended)");
MaterialMicaText = L("settings.material_color.system_material.mica", "Mica");
MaterialAcrylicText = L("settings.material_color.system_material.acrylic", "Acrylic");
SourceFallbackText = L("settings.material_color.source.fallback", "Fallback");
ColorRoleAccentText = L("settings.material_color.role.accent", "Accent");
ColorRolePrimaryText = L("settings.material_color.role.primary", "Primary");
ColorRoleSecondaryText = L("settings.material_color.role.secondary", "Secondary");
ColorRoleSurfaceText = L("settings.material_color.role.surface", "Surface");
ColorRoleTextText = L("settings.material_color.role.text", "Text");
ColorRoleToggleText = L("settings.material_color.role.toggle", "Toggle");
SurfaceDetailFormat = L("settings.material_color.surface.detail_format", "A={0:X2} Blur={1:0}");
}
private string L(string key, string fallback)

View File

@@ -929,6 +929,9 @@ public sealed partial class ComponentsSettingsPageViewModel : ViewModelBase
[ObservableProperty]
private string _cornerRadiusStyleDescription = string.Empty;
[ObservableProperty]
private string _cornerRadiusSpecTooltip = string.Empty;
public void Load()
{
var state = _settingsFacade.Grid.Get();
@@ -1026,6 +1029,8 @@ public sealed partial class ComponentsSettingsPageViewModel : ViewModelBase
CornerRadiusStyleDescription = L(
"settings.components.corner_radius.description",
"Select a fixed corner radius style (inspired by Xiaomi HyperOS) to ensure consistency across all components.");
CornerRadiusSpecTooltip = L("settings.components.corner_radius.spec_tooltip", "View Corner Radius Specification");
CornerRadiusStyleOptions = GlobalAppearanceSettings.AllCornerRadiusStyles
.Select(style => new SelectionOption(style, L($"settings.appearance.corner_radius.style_{style.ToLower()}", style)))

View File

@@ -103,6 +103,9 @@ public sealed partial class WallpaperSettingsPageViewModel : ViewModelBase
[ObservableProperty]
private IBrush _customColorBrush = new SolidColorBrush(Colors.White);
[ObservableProperty]
private string _customColorTooltip = string.Empty;
public void Load()
{
var wallpaper = _settingsFacade.Wallpaper.Get();
@@ -338,6 +341,7 @@ public sealed partial class WallpaperSettingsPageViewModel : ViewModelBase
WallpaperPlacementDescription = L("settings.wallpaper.placement_desc", "Adjust how the image fills the desktop.");
ImportWallpaperButtonText = L("settings.wallpaper.pick_button", "Import Wallpaper");
FilePickerTitle = L("filepicker.title", "Select wallpaper");
CustomColorTooltip = L("settings.wallpaper.custom_color_tooltip", "Custom color");
}
private string L(string key, string fallback)

View File

@@ -146,6 +146,7 @@ public partial class MainWindow : Window
BackToWindowsTextBlock.Text = Lf("button.back_to_platform", "Back to {0}", platformName);
ToolTip.SetTip(BackToWindowsButton, Lf("tooltip.back_to_platform", "Back to {0}", platformName));
ComponentLibraryTitleTextBlock.Text = L("component_library.title", "Widgets");
ComponentLibraryEmptyTextBlock.Text = L("component_library.components_none", "No components.");
LauncherTitleTextBlock.Text = L("launcher.title", "App Launcher");
LauncherSubtitleTextBlock.Text = OperatingSystem.IsLinux()
? L("launcher.subtitle_linux", "Displays installed apps discovered from Linux desktop entries.")

View File

@@ -89,7 +89,7 @@
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Button Classes="AppBarButton" ToolTip.Tip="View Corner Radius Specification" Command="{Binding $parent[Window].((vm:MainWindowViewModel)DataContext).OpenDesignSpecCommand}" CommandParameter="CORNER_RADIUS_SPEC.md">
<Button Classes="AppBarButton" ToolTip.Tip="{Binding CornerRadiusSpecTooltip}" Command="{Binding $parent[Window].((vm:MainWindowViewModel)DataContext).OpenDesignSpecCommand}" CommandParameter="CORNER_RADIUS_SPEC.md">
<fi:SymbolIcon Symbol="QuestionCircle" />
</Button>
</StackPanel>

View File

@@ -167,7 +167,7 @@
Background="{Binding CustomColorBrush}"
BorderThickness="0"
CornerRadius="6"
ToolTip.Tip="Custom color">
ToolTip.Tip="{Binding CustomColorTooltip}">
<Button.Flyout>
<Flyout Placement="BottomEdgeAlignedLeft">
<StackPanel Width="260"