【问题标题】:Simple Styling a Button in XAML WPF? [closed]在 XAML WPF 中简单地设置按钮样式? [关闭]
【发布时间】:2013-10-27 18:33:34
【问题描述】:

我一直在尝试在 XAML WPF 中设置按钮的样式,但经过几个小时的搜索后,我仍然找不到简单易行的解决方案。

这就是我在 HTML 和 CSS 中设置链接 <a>Button</a> 的样式:

a{   
    display: inline-block;    
    border-top: 1px solid #363636;   
    border-bottom: 1px solid #121212;  
    border-right: 1px solid #121212;  
    border-left: 1px solid #363636;  
    background: #282828;  
    padding: 0 0 0 25px;  
    width: 165px;  
    line-height: 25px;  
    font-size: 13px;  
    text-decoration: none;  
    color: #ebebeb;  
    text-shadow: 0 1px 1px #121212;  
}

附:不能发图片。你可以看到一个按钮here (JSFiddle)

【问题讨论】:

  • 您想在 xaml 中应用类似的样式?

标签: wpf xaml button


【解决方案1】:

我不熟悉所有 CSS 属性,但您可以将其 ControlTemplate 覆盖为如下所示:

    <Style TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Border BorderThickness="1,0,0,0" Width="165">
                        <Border.BorderBrush>
                            <SolidColorBrush Color="#363636"/>
                        </Border.BorderBrush>
                        <Border BorderThickness="0,1,0,0">
                            <Border.BorderBrush>
                                <SolidColorBrush Color="#363636"/>
                            </Border.BorderBrush>
                            <Border BorderThickness="0,0,1,0">
                                <Border.BorderBrush>
                                    <SolidColorBrush Color="#121212"/>
                                </Border.BorderBrush>
                                <Border BorderThickness="0,0,0,1">
                                    <Border.BorderBrush>
                                        <SolidColorBrush Color="#121212"/>
                                    </Border.BorderBrush>
                                    <TextBlock Text="{TemplateBinding Content}"
                                               FontSize="13"
                                               Width="165"
                                               Padding="25,0,0,0">
                                        <TextBlock.Foreground>
                                            <SolidColorBrush Color="#ebebeb"/>
                                        </TextBlock.Foreground>
                                        <TextBlock.Background>
                                            <SolidColorBrush Color="#282828"/>
                                        </TextBlock.Background>
                                        <TextBlock.Effect>
                                            <DropShadowEffect Color="#121212"/>
                                        </TextBlock.Effect>
                                    </TextBlock>
                                </Border>
                            </Border>
                        </Border>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

不过,这有点小题大做,但我认为这正是您要找的。但是,如果您想正确执行此操作,则应查看creating your own decorator

希望对你有帮助

【讨论】:

  • 谢谢。不同的边框颜色是我的主要问题。抱歉我的英语不好。
  • @Sandwich 什么是“边界”?你指的是按钮的不同腿吗?
  • 也许吧。如果你的意思是边缘。我的按钮只是一个带有不同颜色边框的简单矩形。我想在按钮的边缘画出不同颜色的线条。
  • @Sandwich 用更合适的解决方案更新了我的答案。希望这会有所帮助
  • 我试图避免棘手的方法。 WPF 装饰器 - 我认为这是我正在寻找的解决方案。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2015-02-04
  • 2017-10-25
  • 2012-09-05
  • 2023-03-19
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多