gpt4 book ai didi

wpf - 如何在动态创建的 ContextMenu 中添加水平分隔符?

转载 作者:行者123 更新时间:2023-12-03 12:01:34 25 4
gpt4 key购买 nike

我在互联网上寻找解决方案,但无法在我的示例中找到它。我需要在从后面的代码生成的上下文菜单项之间添加一个分隔符。我尝试使用如下代码行添加它,但没有成功。

this.Commands.Add(new ToolStripSeparator()); 

我想知道是否有人可以提供帮助。先感谢您。

上下文菜单 XAML:
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="ContextMenu">
<Setter.Value>
<ContextMenu ItemsSource="{Binding Commands}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command" Value="{Binding}" />
<Setter Property="Header" Value="{Binding Path=Text}" />
<Setter Property="CommandParameter" Value="{Binding Path=Parameter}" />
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</Setter.Value>
</Setter>

在方法中添加的 C#:
this.Commands = new ObservableCollection<ICommand>();
this.Commands.Add(MainWindow.AddRole1);
this.Commands.Add(MainWindow.AddRole2);
this.Commands.Add(MainWindow.AddRole3);
this.Commands.Add(MainWindow.AddRole4);
//this.Add(new ToolStripSeparator());
this.Commands.Add(MainWindow.AddRole5);
this.Commands.Add(MainWindow.AddRole6);
this.Commands.Add(MainWindow.AddRole7);

最佳答案

我这样做过一次并使用了null作为我的分隔符。然后从 XAML 中,如果 datacontext 为空,我将模板设置为使用分隔符

后面的代码:

this.Commands.Add(MainWindow.AddRole4);
this.Add(null);
this.Commands.Add(MainWindow.AddRole5);

XAML 是这样的:
<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command" Value="{Binding}" />
<Setter Property="Header" Value="{Binding Path=Text}" />
<Setter Property="CommandParameter" Value="{Binding Path=Parameter}" />

<Style.Triggers>
<DataTrigger Binding="{Binding }" Value="{x:Null}">
<Setter Property="Template" Value="{StaticResource MenuSeparatorTemplate}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContextMenu.ItemContainerStyle>

希望我的语法正确 - 我在这台机器上没有 IDE 来验证代码

编辑

这是上下文菜单分隔符的示例模板。我把它放在 ContextMenu.Resources ,尽管只要 ContextMenu 可以访问它,您就可以将它放在应用程序中的任何位置。
<ContextMenu.Resources>
<ControlTemplate x:Key="MenuSeparatorTemplate">
<Separator />
</ControlTemplate>
</ContextMenu.Resources>

关于wpf - 如何在动态创建的 ContextMenu 中添加水平分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4823760/

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