MixedMenus.axaml
<Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="300" Width="300" xmlns:local="using:AvaloniaUI" x:DataType="local:MixedMenus" x:Class="AvaloniaUI.MixedMenus" Title="MixedMenus"> <Grid Margin="5" RowDefinitions="auto,auto,auto" ColumnDefinitions="*,*"> <!-- 左上:Menu + Button --> <StackPanel Grid.Row="0" Grid.Column="0"> <Menu VerticalAlignment="Top"> <MenuItem Header="File"> <MenuItem Header="Open"/> </MenuItem> <MenuItem Header="Help"/> </Menu> <Button Padding="3" Margin="5">An Ordinary Button</Button> </StackPanel> <!-- 左中:TextBox --> <TextBox Grid.Row="1" Grid.Column="0" Margin="5" Text="A TextBox"/> <!-- 右中:CheckBox + Menu --> <StackPanel Grid.Row="1" Grid.Column="1"> <CheckBox Margin="5">A CheckBox</CheckBox> <Menu VerticalAlignment="Top"> <MenuItem Header="File"/> <MenuItem Header="Help"/> </Menu> </StackPanel> <!-- 底部:Menu --> <Menu Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="5" VerticalAlignment="Top" HorizontalAlignment="Left"> <MenuItem Header="File"> <MenuItem Header="New"/> <Separator/> <MenuItem Header="Open"> <MenuItem Header="Open More"/> </MenuItem> <MenuItem Header="Save" InputGesture="Ctrl+S" HotKey="Ctrl+S" Command="{Binding SaveCommand}"> <MenuItem.Icon> <PathIcon Data="M4,4 H14 V14 H4 Z M8,8 H18 V18 H8 Z"/> </MenuItem.Icon> </MenuItem> </MenuItem> </Menu> </Grid> </Window>
MixedMenus.axaml.cs
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using CommunityToolkit.Mvvm.Input;
using Shares.Avalonia;
namespace AvaloniaUI;
public partial class MixedMenus : Window
{
public MixedMenus()
{
InitializeComponent();
this.DataContext = this;
}
[RelayCommand]
private void Save()
{
MessageBox.Show(this, "Save command");
}
}
运行效果

浙公网安备 33010602011771号