我只想要一个没有背景或纯文本以外的按钮。我已完成以下操作,按钮根本没有显示:
<UserControl.Resources>
<ControlTemplate x:Key="linkButtons" TargetType="Button">
<TextBlock Foreground="White" FontSize="28" FontFamily="Verdana" Padding="10"></TextBlock>
</ControlTemplate>
</UserControl.Resources>
<Button Template="{StaticResource linkButtons}" Content="Hello World!"/>
答案 0 :(得分:5)
这是因为Control模板中的TextBlock
没有模板绑定。创建一个这样的属性:
<TextBlock Foreground="White" FontSize="28" FontFamily="Verdana" Padding="10" Text="{TemplateBinding Content}" />
不确定这是否是正确的语法,但这就是概念。
答案 1 :(得分:3)
问题是按钮被设计为包含内容而不是文本 - 它是一种ContentControl。因此,要显示内容,您的模板应该包含以下内容:
<ContentPresenter x:Name="contentPresenter"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"/>
OR ,您可以根据按钮制作自定义控件,为其添加Text属性,在模板中使用当前的TextBlock控件(但使用{{1 })并将ContentPresenter从模板中删除。制作自定义控件比仅为现有控件制作模板要复杂一点,但它确实是获得您想要的最佳方式。