首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码后面的按钮边框粗细

代码后面的按钮边框粗细
EN

Stack Overflow用户
提问于 2016-07-27 22:33:54
回答 2查看 17.2K关注 0票数 5

我是wpf的新手,现在我正在使用按钮,所以我想改变按钮的边框粗细,但从代码后台不是XAML,我做的是下一步:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2016-07-28 00:14:24

按钮的默认边框厚度为1,因此如果将其设置为1,则不会发生任何更改。

要查看更改,只需将其设置为不同的内容:

代码语言:javascript
复制
button.BorderThickness = new Thickness(1, 1, 1, 3);

票数 11
EN

Stack Overflow用户

发布于 2016-07-28 17:09:58

由于默认的按钮模板没有边框属性,更多信息可以访问:here。因此,如果你想在按钮周围添加一个边框,你必须添加你自己的样式,比如:

代码语言:javascript
复制
<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>

在上面的代码中,像:BorderBrushBorderThicknessBackground这样的属性都是硬编码的,你不能从代码后台设置这些属性。如果你想这样做,你必须编写这样的风格:

代码语言:javascript
复制
<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>

并像这样应用此样式:

代码语言:javascript
复制
<Grid>
    <Button Name="btnNew" Style="{StaticResource ButtonStyle }" Width="200" Height="50" Click="Button_Click" />
</Grid>

之后,您可以根据自己的意愿更改边界的这些属性,例如:

代码语言:javascript
复制
btnNew.Background = Brushes.Black;
btnNew.BorderThickness = new Thickness(4, 5, 7, 9);
btnNew.BorderBrush = Brushes.Red;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38616005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档