WPF按钮无边框无背景

20

我只需要一个看起来像TextBlock的简单按钮。 之前我在Stack Overflow上看到过一个回答,可以基于菜单中的静态样式为按钮设置样式,但是我找不到那个答案(我已经搜索了一个小时)。 有人知道我指的是哪种系统样式以及应用该样式到按钮的语法吗?


如果你想要一个没有边框和背景的 WPF 按钮,你可以将按钮的 Background 属性设置为 Transparent,并将按钮的 BorderThickness 属性设置为 0。 - Willy
2个回答

46

您所提到的可能是工具栏中按钮使用的样式吗? 工具栏控件会覆盖按钮样式,使其显示为平面风格。 您可以将此样式应用于按钮,如下所示...

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" />

3
这样做的好处是,您无需为鼠标悬停或按下按钮时实现样式。 - Amanduh
太棒了,正是我在寻找的! - Chef Pharaoh
这是一个很好的方法。我唯一看到的问题是,一旦你点击按钮,按钮就会被选中,并且它会一直保持不变,直到你点击另一个按钮或组件。 - Willy

43

如果你想要一个看起来像 TextBlock 的按钮,你可以创建一个实际上是 TextBlock 的按钮。

<Button Content="I'm a Button; click me">
    <Button.Template>
        <ControlTemplate TargetType="Button">
            <TextBlock Text="{TemplateBinding Content}" />
        </ControlTemplate>
    </Button.Template>
</Button>

有好的答案和更好的答案可以解决我的问题,但是lanR 提供了我所需的系统样式。+1 - paparazzo
该方法允许您替换可点击的<Image />(无需所有按钮样式)。 - Jake Berger
为了让它工作,您可能需要在Content之前指定类型。请参阅https://dev59.com/WVPTa4cB1Zd3GeqPfgm6。 - Jason Rae
2
我不认为这是Metro风格,因为如果没有手动插入代码,您将无法获得鼠标悬停等功能。 - Chef Pharaoh
有没有一种方法可以自动调整按钮大小以适应文本的长度? - xandermonkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接