摆脱WPF中的按钮边框?

时间:2010-05-24 20:07:57

标签: wpf button border

我试图摆脱按钮边框并仅显示文本,但是即使我将borderThickness设置为0并将borderbrush设置为transparent,也会显示文本周围的细线。 alt text http://i45.tinypic.com/scywye.png

我的保存按钮的xaml代码:

<Button Content="save" Name="btnSaveEditedText" 
                Background="Transparent" 
                Foreground="White" 
                FontFamily="Tw Cen MT Condensed" 
                FontSize="30" 
                Margin="-280,0,0,10"
                Width="60"
                BorderBrush="Transparent"
                BorderThickness="0"/>

无论如何我可以摆脱按钮边框吗?

4 个答案:

答案 0 :(得分:47)

您需要覆盖Button的ControlTemplate:

<Button Content="save" Name="btnSaveEditedText" 
                Background="Transparent" 
                Foreground="White" 
                FontFamily="Tw Cen MT Condensed" 
                FontSize="30" 
                Margin="-280,0,0,10"
                Width="60"
                BorderBrush="Transparent"
                BorderThickness="0">
    <Button.Template>
        <ControlTemplate TargetType="Button">
             <ContentPresenter Content="{TemplateBinding Content}"/>
        </ControlTemplate>
    </Button.Template>
</Button>

答案 1 :(得分:11)

我最近发现对此最有用的方法是让按钮使用工具栏的样式。这只会在鼠标悬停时显示按钮边框时使用图像或文本。

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
        Content="save"
        Name="btnSaveEditedText" 
        Background="Transparent" 
        Foreground="White" 
        FontFamily="Tw Cen MT Condensed" 
        FontSize="30" 
        Margin="-280,0,0,10"
        Width="60"
        BorderBrush="Transparent"
        BorderThickness="0" />

答案 2 :(得分:2)

您需要为按钮创建一个新模板。

最简单的方法是在Expression Blend中打开项目,选择按钮,然后右键单击并选择“编辑模板&gt;编辑副本..”。这会将现有模板复制到您可以修改的模板中。如果您在资源字典中创建它会更容易。

然后选择模板并在“资源”选项卡上(在UI的右侧)选择ButtonFocusVisual。选择“属性”选项卡,然后展开“其他”部分。这有BorderStyle和BorderThickness字段(以及其他)。将样式设置为无。

答案 3 :(得分:1)

模板无法解决此问题,您唯一的做法是修改WPF控件。解决方案在这里:

How to remove ButtonChrome border (when defining the template of a border)?