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

@@ -47,21 +47,6 @@
</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}" />
</Button> </Button>

View File

@@ -26,11 +26,14 @@ public partial class MainViewModel : ObservableObject
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()
{ {
MenuItems = MenuItems =
[
new MenuItemViewModel
{
Header = "High Contrast Theme",
Items =
[ [
new MenuItemViewModel new MenuItemViewModel
{ {
@@ -56,8 +59,12 @@ public partial class MainViewModel : ObservableObject
Command = SelectThemeCommand, Command = SelectThemeCommand,
CommandParameter = SemiTheme.NightSky CommandParameter = SemiTheme.NightSky
}, },
]; ]
LocaleItems = },
new MenuItemViewModel()
{
Header = "Locale",
Items=
[ [
new MenuItemViewModel new MenuItemViewModel
{ {
@@ -95,6 +102,8 @@ public partial class MainViewModel : ObservableObject
Command = SelectLocaleCommand, Command = SelectLocaleCommand,
CommandParameter = new System.Globalization.CultureInfo("zh-tw") CommandParameter = new System.Globalization.CultureInfo("zh-tw")
}, },
]
}
]; ];
} }