我是wpf的新手,现在我正在使用按钮,所以我想改变按钮的边框粗细,但从代码后台不是XAML,我做的是下一步:
var converter = new System.Windows.Media.BrushConverter();
var brush = (Brush)converter.ConvertFromString("#83D744");
btn0.Background = System.Windows.Media.Brushes.Transparent; // This is applied to button
btn0.BorderThickness = new Thickness(1); //Thickness wont apply to button I dont know why
btn0.BorderBrush = brush; //This is also applied to button发布于 2016-07-28 00:14:24
按钮的默认边框厚度为1,因此如果将其设置为1,则不会发生任何更改。

要查看更改,只需将其设置为不同的内容:
button.BorderThickness = new Thickness(1, 1, 1, 3);

发布于 2016-07-28 17:09:58
由于默认的按钮模板没有边框属性,更多信息可以访问:here。因此,如果你想在按钮周围添加一个边框,你必须添加你自己的样式,比如:
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="Transparent" BorderThickness="0" Background="Transparent">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>在上面的代码中,像:BorderBrush,BorderThickness和Background这样的属性都是硬编码的,你不能从代码后台设置这些属性。如果你想这样做,你必须编写这样的风格:
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderBrush="{TemplateBinding Property=BorderBrush}" BorderThickness="{TemplateBinding Property=BorderThickness}" Background="{TemplateBinding Property=Background}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>并像这样应用此样式:
<Grid>
<Button Name="btnNew" Style="{StaticResource ButtonStyle }" Width="200" Height="50" Click="Button_Click" />
</Grid>之后,您可以根据自己的意愿更改边界的这些属性,例如:
btnNew.Background = Brushes.Black;
btnNew.BorderThickness = new Thickness(4, 5, 7, 9);
btnNew.BorderBrush = Brushes.Red;https://stackoverflow.com/questions/38616005
复制相似问题