【发布时间】:2011-08-31 16:06:18
【问题描述】:
我有一个带有自定义按钮的水平堆栈面板,单击该按钮时会在按钮右侧打开一个上下文菜单。我希望该上下文菜单具有圆角矩形。有办法做到这一点吗?我以为我可以将其包装在一个元素中,但 ContextMenu 不响应 Border。谢谢。
【问题讨论】:
标签: c# wpf xaml contextmenu
我有一个带有自定义按钮的水平堆栈面板,单击该按钮时会在按钮右侧打开一个上下文菜单。我希望该上下文菜单具有圆角矩形。有办法做到这一点吗?我以为我可以将其包装在一个元素中,但 ContextMenu 不响应 Border。谢谢。
【问题讨论】:
标签: c# wpf xaml contextmenu
您可能需要像这样设置 ContextMenu 元素的样式:
<Style TargetType="ContextMenu">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContextMenu">
<Border CornerRadius="5" BorderBrush="Black" BorderThickness="1" Background="Blue" SnapsToDevicePixels="True">
<ItemsPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
用法:
ContextMenu m = new ContextMenu();
m.Items.Add("Item 1");
m.Items.Add("Item 2");
m.Items.Add("Item 3");
m.PlacementTarget = sender as UIElement;
m.Placement = System.Windows.Controls.Primitives.PlacementMode.Right;
m.IsOpen = true;
【讨论】: