gpt4 book ai didi

c# - 根据 WPF 中的情况自定义菜单

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:32 25 4
gpt4 key购买 nike

如何根据 WPF 中的情况自定义菜单?我有一个带有基本菜单的主窗口。在此窗口中,我可以加载不同的用户控件,然后我希望根据使用的用户控件使用不同的菜单选项扩展菜单。

例子:

Main menu:
File
Open
-
MRU
-
Exit


For viewing of UserControl 1:
File
Open
Edit
-
MRU
-
Exit

For viewing of UserControl 2:
File
Open
Edit
-
MRU
-
Exit
View
Show codes
Show capital letters

In Editing
File
Open
Save
Save as...
-
MRU
-
Exit
Edit
Add
Remove
Move
-
Cancle Edit

最佳答案

我会将菜单绑定(bind)到一个集合,并让不同的 UserControls 在加载时改变集合。

编辑 - 这是一个例子

你的主视图会包含这样的东西

<Menu ItemsSource="{Binding Path=CurrentUserControl.MenuItems}">
<Menu.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header" Value="{Binding MenuItemText}" />
<Setter Property="Command" Value="{Binding MenuItemCommand}" />
<Setter Property="CommandParameter" Value="{Binding MenuItemCommandParameter}" />
</Style>
</Menu.Resources>
</Menu>

虽然每个 UserControl 都包含您要显示的 MenuItem 的 Collection 属性

public class MenuItem
{
public string MenuItemText {get; set;}
public ICommand MenuItemCommand {get; set;}
public object MenuItemCommandParameter {get; set;}
}

...

public ObservableCollection<MenuItem> MenuItems;

关于c# - 根据 WPF 中的情况自定义菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com