2010-10-08 27 views
1

我只是想要一個沒有背景或純文本以外的任何按鈕。我也做了以下內容和按鈕不會顯示在所有:如何製作純文本的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!"/> 

回答

3

問題是,按鈕被設計爲具有內容,而不是文本 - 它是一種ContentControl。所以,要顯示的內容,您的模板應該有這個在它:

<ContentPresenter x:Name="contentPresenter" 
    Content="{TemplateBinding Content}" 
    ContentTemplate="{TemplateBinding ContentTemplate}" 
    VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
    Margin="{TemplateBinding Padding}"/> 

OR,你可以做基於按鍵的自定義控制,Text屬性添加到它,使用當前TextBlock控件在模板中(但使用Text="{Binding Text}"),並將ContentPresenter保留在您的模板之外。製作自定義控件比爲現有控件製作模板稍微複雜一點,但它確實是獲取你想要的內容的最佳方式。

+0

我一定不能做正確的事..它不適合我 – Matt 2010-10-08 14:16:24

+0

提供最新代碼的更新? – 2010-10-08 14:25:26

5

這是因爲控制模板內的TextBlock沒有一個模板綁定。製作屬性如下:

<TextBlock Foreground="White" FontSize="28" FontFamily="Verdana" Padding="10" Text="{TemplateBinding Content}" /> 

不知道這是否正確的語法,但多數民衆贊成的概念。

+0

這是有道理的,但你是正確的語法是關閉..「內容」不是一個選項 – Matt 2010-10-08 13:57:27

+0

這是。內容是Button的一個屬性。不過,它不會出現在intellisense中。 – MojoFilter 2010-10-08 15:00:01