如何访问MenuItem的边框以更改Corner Radius?
这不起作用:
Style menuitemStyle = new Style(typeof(MenuItem));
menuitemStyle.Setters.Add(new Setter { Property = Border.CornerRadiusProperty, Value = 2 });
m.Style = menuitemStyle;
这是xaml(没有任何内容):
<Grid><StackPanel Orientation="Horizontal" HorizontalAlignment="Left" x:Name="spSub" VerticalAlignment="Top" >
</StackPanel></Grid
更新&LT;&LT;&LT; 我尝试将其添加到xaml但是MenuItem边框仍然是正方形:
<UserControl.Resources>
<ControlTemplate x:Key="subMenuItem" TargetType="MenuItem">
<Border CornerRadius="5"></Border>
</ControlTemplate>
</UserControl.Resources>
答案 0 :(得分:1)
我会在XAML中使用一种样式并覆盖控件模板。
<Style TargetType="{x:Type MenuItem}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Border BorderBrush="Red" BorderThickness="10" CornerRadius="10">
<TextBlock Text="Content" ></TextBlock>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您应该能够将TextBlock修改为所需的显示控件,或者相应地将数据绑定到它。我只是夸大了BorderThickness,以显示变化的样子。