2012-01-05 93 views
2

我有這樣的XAML如何通過XAML應用樣式超鏈接TextDecorations屬性WPF

<Button.Content> 
    <Hyperlink> 
    <Hyperlink.TextDecorations> 
     <TextDecoration> 
     <TextDecoration.Pen> 
      <Pen Thickness="0" /> 
     </TextDecoration.Pen> 
     </TextDecoration> 
    </Hyperlink.TextDecorations> 
    <Run Text="jumped over" /> 
    </Hyperlink> 
</Button.Content> 

我需要從一個樣式應用於此。我的風格是這樣的

<Style x:Key="Button_Link" TargetType="{x:Type Hyperlink}"> 
    <Setter Property="TextDecorations" > 
    <Setter.Value> 
     <TextDecorations> 
     <TextDecoration> 
      <TextDecoration.Pen> 
      <Pen Thickness="0" /> 
      </TextDecoration.Pen> 
     </TextDecoration> 
     </TextDecorations> 
    </Setter.Value> 
    </Setter> 
</Style> 

這是導致我的風格文件中的錯誤是用於鬆散XAML

我申請的風格,以超鏈接這樣

Style="{DynamicResource Button_Link}" 
+0

Argg ...「導致錯誤」?什麼是錯誤? – Ray 2012-01-05 12:02:45

+0

頁面不會在瀏覽器中呈現 – CodeMe 2012-01-05 12:05:03

回答

3

ResourceDictionary中你不需要將筆厚度設置爲零來刪除下劃線,您可以使用以下樣式:

<Style x:Key="Button_Link" TargetType="{x:Type Hyperlink}">    
    <Setter Property="TextDecorations" Value="None" /> 
</Style> 

如果這僅僅是一個簡單的例子,您可以通過更換<TextDecorations><TextDecorationsCollection>解決您現有的樣式像這樣:

<Style x:Key="Button_Link" TargetType="{x:Type Hyperlink}">    
    <Setter Property="TextDecorations"> 
     <Setter.Value> 
      <TextDecorationCollection> 
       <TextDecoration> 
        <TextDecoration.Pen> 
         <Pen Thickness="0" /> 
        </TextDecoration.Pen> 
       </TextDecoration> 
      </TextDecorationCollection> 
     </Setter.Value> 
    </Setter> 
</Style> 

另外,雖然沒有必要,你的風格是靜態的,所以可以應用於像

Style="{StaticResource Button_Link}" 
+0

感謝您提到的所有3件事情都很好 – CodeMe 2012-01-05 13:23:10