WPF的菜单类控件
Menu菜单

1 <Menu Grid.Row="1" > 2 <MenuItem Header="通讯录1 >"> 3 <MenuItem.Items> 4 <MenuItem Header="张三"> 5 <MenuItem.Icon > 6 <Image Source="../Resources/111.ico"/> 7 </MenuItem.Icon></MenuItem> 8 <MenuItem Header="李四"/> 9 <MenuItem Header="王五"/> 10 </MenuItem.Items> 11 </MenuItem> 12 <MenuItem Header="通讯录2 >"> 13 <MenuItem.Items> 14 <MenuItem Header="张三"/> 15 <MenuItem Header="李四"/> 16 <MenuItem Header="王五"/> 17 </MenuItem.Items> 18 </MenuItem> 19 </Menu>
层级绑定方式:
1 <Menu ItemsSource="{Binding MenuList}"> 2 <Menu.ItemTemplate> 3 <HierarchicalDataTemplate ItemsSource="{Binding Childs}"> 4 <TextBlock Text="{Binding Name}"/> 5 </HierarchicalDataTemplate> 6 </Menu.ItemTemplate> 7 </Menu>
VM中属性:

1 private ObservableCollection<MenuNode> menulist; 2 public ObservableCollection<MenuNode> MenuList 3 { 4 get { return menulist; } 5 set 6 { 7 menulist = value; 8 RaisePropertyChanged(); 9 } 10 } 11 12 public class MenuNode 13 { 14 public string Name { get; set; } 15 private List<MenuNode> childs = new List<MenuNode>(); 16 public List<MenuNode> Childs 17 { 18 get { return childs; } 19 } 20 }
右键菜单

1 <Button Content="右键菜单" MouseRightButtonDown="Button_MouseRightButtonDown" > 2 private void Button_MouseRightButtonDown(object sender, MouseButtonEventArgs e) 3 { 4 (sender as Button).ContextMenu = CreateMenu(); 5 (sender as Button).ContextMenu.IsOpen = true; 6 } 7 8 private ContextMenu CreateMenu() 9 { 10 ContextMenu menu = new ContextMenu(); 11 for (int i = 0; i < 4; i++) 12 { 13 menu.Items.Add(new MenuItem() { Header = "1" + i }); 14 } 15 return menu; 16 }
树形菜单
1 <TreeView ItemsSource="{Binding MenuList}"> 2 <TreeView.ItemTemplate> 3 <HierarchicalDataTemplate ItemsSource="{Binding Childs}" > 4 <TextBlock Text="{Binding Name}"/> 5 </HierarchicalDataTemplate> 6 </TreeView.ItemTemplate> 7 </TreeView>
下拉菜单
1 <ComboBox SelectedIndex="2"> 2 <ComboBox.Items> 3 <ComboBoxItem Content="菜单1"/> 4 <ComboBoxItem Content="菜单2"/> 5 <ComboBoxItem Content="菜单3"/> 6 <ComboBoxItem Content="菜单4"/> 7 </ComboBox.Items> 8 </ComboBox>
也可以用Popup实现菜单效果;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?