在WPF更改按钮边框的厚度?边框、厚度、按钮、WPF

2023-09-04 01:06:29 作者:[时光会咬人]

为什么按钮的边框厚度不改?

Why the border thickness of the Button doesn't change?

如果我更改边框厚度为1或100,它没有问题。一样的。我想使用的风格,而不是改变它自定义模板

If I change the border thickness to 1 or 100, it doesn't matters. It's the same. I would like to change it using Style, not Custom Template.

 <Window x:Class="GUI.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <Style x:Key="newYellowButton" TargetType="{x:Type Button}">
        <Setter Property="Width" Value="100"/>
        <Setter Property="Height" Value="100"/>
        <Setter Property="Background">
            <Setter.Value>
                <RadialGradientBrush Center="0.5,0.5" GradientOrigin="0.5,0.5" RadiusX="0.5" RadiusY="0.5" SpreadMethod="Pad" ColorInterpolationMode="SRgbLinearInterpolation">
                    <GradientStop Color="#FFEEEE3B" Offset="0.5" />
                    <GradientStop Color="#FFF0E49A" Offset="1" />
                </RadialGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter Property="BorderThickness" Value="9"/>
        <Setter Property="BorderBrush" Value="Blue" />
        <Setter Property="Padding" Value="-4"/>
    </Style>
</Window.Resources>
<Grid>
    <Button Style="{StaticResource newYellowButton}" Content="Ok"/>
</Grid>

推荐答案

您可以通过更改的按钮的控件模板。复制这些风格,画笔,...给你资源字典,然后改成你想要的值。

You can do it by changing the Button's ControlTemplate. Copy those style, brushes and ... to you resource dictionary then change the values you want.

要更改边框厚度找到以下code,你想做出改变:

To change the border thickness find the following code and make changes you want:

...
<Border 
      x:Name="Border"  
      CornerRadius="2" 
      BorderThickness="1"                             //CHANGE THIS VALUE
      Background="{StaticResource NormalBrush}"
      BorderBrush="{StaticResource NormalBorderBrush}">
      <ContentPresenter 
        Margin="2"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        RecognizesAccessKey="True"/>
</Border>
...