鑑於以下XAML標記,我希望超鏈接中的文本在我將鼠標移到它上方時變成橙色,因爲我在其父控件上設置了前景色它應該過濾掉Property Value Inheritance。但它保持黑色。我需要做什麼?WPF - 超鏈接風格不會隨着標籤內部樣式的變化而變化
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style x:Key="DemoLink" TargetType="{x:Type Hyperlink}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="DarkOrange" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Label>
<Hyperlink Style="{StaticResource DemoLink}">
<Label Content="Text that should change colour on mouse over" />
</Hyperlink>
</Label>
</Grid>
</Window>
更新:從Meleak簡單的答案是,使用TextBlock的,而不是內標籤會導致如預期的那樣風格的工作 - 將TextBlock拿起從其父前景色,而標籤纔不是。
例如
<Label>
<Hyperlink Style="{StaticResource DemoLink}">
<TextBlock Text="Text that does change colour on mouse over" />
</Hyperlink>
</Label>
是的,我設置了超鏈接的樣式,而不是標籤。標籤沒有明確設置前景,所以它應該根據屬性繼承從其父項中獲取該值http://msdn.microsoft.com/en-us/library/ms753197.aspx我希望超鏈接中的所有內容得到那個forground集合。但事實並非如此。 – Anthony 2011-02-01 23:00:01
並非每個依賴屬性都參與價值繼承。超鏈接,我相信是一個沒有。我可以看到你找到了TextBlock的解決方案,但我可以提到更多的方法來做到這一點。你可以寫:<超鏈接樣式=「{StaticResource DemoLink}」> 這是一些文字,應該改變鼠標的顏色 – ShaQ 2011-02-02 11:58:48