您可能會發現,如果你綁定到任何其他而不是簡單的文本值,您需要使用ContentPresenter
否則不會顯示任何內容,如果您綁定到XML數據源,則可能會出現這種情況。
IsMouseOver的屬性觸發器給文本一個下劃線。
下面介紹了一個綁定到XML的示例。
<Style x:Key="JobNumberStyleButton" TargetType="{x:Type Button}">
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<TextBlock>
<ContentPresenter
Margin="0,0,0,0"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="False"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<TextBlock Padding="0,0,0,0" Margin="0,0,0,0">
<Underline>
<ContentPresenter
Margin="0,0,0,0"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="False"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Underline>
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
+1 - 「我怎麼做我已經知道如何在HTML做」的問題時與XAML學習過程中燒了這麼多的時間。 「-Man你沒有錯, – 2010-08-18 07:18:27
尊重,把Clippy變成VS是一個非常糟糕的主意!!你能想象那個令人討厭的回形針汲取你正在編程的東西,並提出無效的建議嗎?我認爲你可以避免這些問題通過學習WPF之前跳進去 – MikeKulls 2012-04-23 01:29:32
所以那裏有你;在寫XAML的時候我總是感嘆「如果只有這個是css ......」 – nocarrier 2014-01-04 03:10:35