如何以编程方式设置菜单项边框的角半径

本文关键字:边框 菜单项 设置 编程 方式 | 更新日期: 2023-09-27 18:07:20

如何访问菜单项的边界以更改角半径?

这是不工作:

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

Update<& lt; & lt;我试着把这个添加到xaml,但菜单项的边界仍然是方形的:

<UserControl.Resources>
    <ControlTemplate x:Key="subMenuItem" TargetType="MenuItem">
        <Border CornerRadius="5"></Border>
    </ControlTemplate>
</UserControl.Resources>

如何以编程方式设置菜单项边框的角半径

我会在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,以显示更改后的效果。