Возможно ли в WPF определить структуру меню и использовать его в нескольких контекстах? Например, я хотел бы использовать набор элементов меню из ресурсов в ContextMenu, в меню Window и ToolBar (ToolBar с только значками, без заголовков). Поэтому порядок вещей, команды, значки, разделители должны быть определены только один раз.Многократное использование MenuItems, объявленного однажды (WPF)
я смотрю на что-то вроде этого:
декларации в ресурсах:
<MenuItem Command="MyCommands.CloneObject"
CommandParameter="{Binding SelectedObject}" Header="Clone">
<MenuItem.Icon>
<Image Source="Images\Clone.png" Height="16" Width="16"></Image>
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="MyCommands.RemoveCommand"
CommandParameter="{Binding SelectedObject}" Header="Remove">
<MenuItem.Icon>
<Image Source="Images\Remove.png" Height="16" Width="16"></Image>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem Command="MyCommands.CreateChild"
CommandParameter="{Binding SelectedObject}" Header="Create child">
<MenuItem.Icon>
<Image Source="Images\Child.png" Height="16" Width="16"></Image>
</MenuItem.Icon>
</MenuItem>
Использование:
<ToolBar MenuItems(?)="{Reference to set of items}" ShowText(?)="false" />
и
<ContextMenu MenuItems(?)="{Reference to set of items}" />
Это хороший способ сделать это. Кстати, вы написали здесь на самом деле «пользовательский контроль», который немного отличается от «пользовательского элемента управления». Пользовательский элемент управления не имеет файла XAML и не имеет вызова InitializeComponent. Вместо этого он устанавливает свой DefaultStyleKey и имеет стиль, определенный в Themes/Generic.xaml или один из его объединенных словарей. Пользовательский элемент управления, который есть у вас здесь, не имеет возможности добавлять контент, когда он используется. Пользовательский контроль делает. Пользовательский контроль также более эффективен несколькими способами. Просто FYI. Ваш ответ хороший. –
Вы, конечно, правы. Я был неряшлив :-) Я отредактировал свой ответ, чтобы отразить это. – Goblin