2012-06-19 101 views
2

我似乎無法找到如何將投影添加到流文檔中的超鏈接。由於HyperLink不是UIElement,因此它沒有效果屬性(我所有的Google搜索引擎都使用DropShadowEffect)。它有一個TextEffects集合,但我似乎無法弄清楚如何創建一個陰影。最終,我想要做的是在背景畫筆上添加陰影而不是文字本身。在HyperLink上投下陰影效果

我的要求非常模糊,我只需要讓焦點外觀看起來更好(即選項卡焦點和鍵盤焦點,而不是鼠標懸停),並且我認爲輕微的投影會做到這一點,但我打開了到其他建議。

(我沒有足夠的代表處上傳截圖GRR所以這裏是一個仿真)

這裏有一個HyperLink

我想補充各地的灰色部分陰影(淡藍色在我的應用程序)而不是文本(如前所述)。

回答

1

我非常肯定你不能在每一行的基礎上做到這一點。 WPF提供效果的方式是將它們批量應用於視覺樹中的單個對象。像超鏈接這樣的內容元素都在其父級(FlowDocumentReader或可比較的)中組合成一個可視元素。

FlowDocument控件確實能夠使用BlockUIContainer塊內容元素或InlineUIContainer內聯內容元素託管子視覺元素。您可以使用此功能將DropShadow應用於單個超鏈接,如下所示:

<FlowDocument> 
     <Paragraph> 
      <Run Text="This is a" /> 
      <InlineUIContainer> 
       <TextBlock Background="#FFCDCDCD"> 
        <TextBlock.Effect> 
         <DropShadowEffect ShadowDepth="3" Color="#FFC9C9C9" /> 
        </TextBlock.Effect> 
        <Hyperlink><Run Text="hyperlink" /></Hyperlink> 
       </TextBlock> 
      </InlineUIContainer> 
     </Paragraph> 
</FlowDocument> 
+0

感謝您的示例和說明。這也是我在繼續使用Google搜索時得出的結論。 – Nathan