feat: simplify menu.

This commit is contained in:
Dong Bin
2025-01-03 15:51:51 +08:00
parent 26bb251d1e
commit 263c65dd18
2 changed files with 70 additions and 76 deletions

View File

@@ -46,21 +46,6 @@
<Setter Property="Theme" Value="{DynamicResource InnerPathIcon}" /> <Setter Property="Theme" Value="{DynamicResource InnerPathIcon}" />
</Style> </Style>
</StackPanel.Styles> </StackPanel.Styles>
<Button>
<PathIcon Data="{StaticResource SemiIconLanguage}" />
<Button.Flyout>
<MenuFlyout Placement="Bottom" ItemsSource="{Binding LocaleItems}" />
</Button.Flyout>
<Button.Styles>
<Style Selector="MenuItem" x:DataType="views:MenuItemViewModel">
<Setter Property="Header" Value="{Binding Header}" />
<Setter Property="ItemsSource" Value="{Binding Items}" />
<Setter Property="Command" Value="{Binding Command}" />
<Setter Property="CommandParameter" Value="{Binding CommandParameter}" />
</Style>
</Button.Styles>
</Button>
<Button Command="{Binding OpenUrlCommand}" CommandParameter="{Binding DocumentationUrl}"> <Button Command="{Binding OpenUrlCommand}" CommandParameter="{Binding DocumentationUrl}">
<PathIcon Data="{StaticResource SemiIconGlobe}" /> <PathIcon Data="{StaticResource SemiIconGlobe}" />

View File

@@ -25,8 +25,6 @@ public partial class MainViewModel : ObservableObject
public string DocumentationUrl => "https://docs.irihi.tech/semi"; public string DocumentationUrl => "https://docs.irihi.tech/semi";
public string RepoUrl => "https://github.com/irihitech/Semi.Avalonia"; public string RepoUrl => "https://github.com/irihitech/Semi.Avalonia";
public IReadOnlyList<MenuItemViewModel> MenuItems { get; } public IReadOnlyList<MenuItemViewModel> MenuItems { get; }
public IReadOnlyList<MenuItemViewModel> LocaleItems { get; }
public MainViewModel() public MainViewModel()
{ {
@@ -34,67 +32,78 @@ public partial class MainViewModel : ObservableObject
[ [
new MenuItemViewModel new MenuItemViewModel
{ {
Header = "Aquatic", Header = "High Contrast Theme",
Command = SelectThemeCommand, Items =
CommandParameter = SemiTheme.Aquatic [
new MenuItemViewModel
{
Header = "Aquatic",
Command = SelectThemeCommand,
CommandParameter = SemiTheme.Aquatic
},
new MenuItemViewModel
{
Header = "Desert",
Command = SelectThemeCommand,
CommandParameter = SemiTheme.Desert
},
new MenuItemViewModel
{
Header = "Dusk",
Command = SelectThemeCommand,
CommandParameter = SemiTheme.Dusk
},
new MenuItemViewModel
{
Header = "NightSky",
Command = SelectThemeCommand,
CommandParameter = SemiTheme.NightSky
},
]
}, },
new MenuItemViewModel new MenuItemViewModel()
{ {
Header = "Desert", Header = "Locale",
Command = SelectThemeCommand, Items=
CommandParameter = SemiTheme.Desert [
}, new MenuItemViewModel
new MenuItemViewModel {
{ Header = "简体中文",
Header = "Dusk", Command = SelectLocaleCommand,
Command = SelectThemeCommand, CommandParameter = new System.Globalization.CultureInfo("zh-cn")
CommandParameter = SemiTheme.Dusk },
}, new MenuItemViewModel
new MenuItemViewModel {
{ Header = "English",
Header = "NightSky", Command = SelectLocaleCommand,
Command = SelectThemeCommand, CommandParameter = new System.Globalization.CultureInfo("en-us")
CommandParameter = SemiTheme.NightSky },
}, new MenuItemViewModel
]; {
LocaleItems = Header = "日本語",
[ Command = SelectLocaleCommand,
new MenuItemViewModel CommandParameter = new System.Globalization.CultureInfo("ja-jp")
{ },
Header = "简体中文", new MenuItemViewModel
Command = SelectLocaleCommand, {
CommandParameter = new System.Globalization.CultureInfo("zh-cn") Header = "Українська",
}, Command = SelectLocaleCommand,
new MenuItemViewModel CommandParameter = new System.Globalization.CultureInfo("uk-ua")
{ },
Header = "English", new MenuItemViewModel
Command = SelectLocaleCommand, {
CommandParameter = new System.Globalization.CultureInfo("en-us") Header = "Русский",
}, Command = SelectLocaleCommand,
new MenuItemViewModel CommandParameter = new System.Globalization.CultureInfo("ru-ru")
{ },
Header = "日本語", new MenuItemViewModel
Command = SelectLocaleCommand, {
CommandParameter = new System.Globalization.CultureInfo("ja-jp") Header = "繁體中文",
}, Command = SelectLocaleCommand,
new MenuItemViewModel CommandParameter = new System.Globalization.CultureInfo("zh-tw")
{ },
Header = "Українська", ]
Command = SelectLocaleCommand, }
CommandParameter = new System.Globalization.CultureInfo("uk-ua")
},
new MenuItemViewModel
{
Header = "Русский",
Command = SelectLocaleCommand,
CommandParameter = new System.Globalization.CultureInfo("ru-ru")
},
new MenuItemViewModel
{
Header = "繁體中文",
Command = SelectLocaleCommand,
CommandParameter = new System.Globalization.CultureInfo("zh-tw")
},
]; ];
} }