如何制作纯文本的Silverlight按钮?

时间:2010-10-08 13:45:57

标签: silverlight

我只想要一个没有背景或纯文本以外的按钮。我已完成以下操作,按钮根本没有显示:

<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!"/>

2 个答案:

答案 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从模板中删除。制作自定义控件比仅为现有控件制作模板要复杂一点,但它确实是获得您想要的最佳方式。