2016-04-09 10 views
0

Windows.UI.Xaml.Documents.Hyperlinkのスタイルを正しく理解していない現在、苦労しています... 問題は簡単です:「通常の」フォアグラウンドカラーを変更するとうまくいきますが、ハイパーリンクが表示されるとすぐに説明するのは簡単です)ハイパーリンクのホバー色を変更する

私が苦労している質問は、ハイパーリンクの他のビジュアル状態の前景を変更する方法です(黒は黒が非常に悪く見えます... :))?

Hyperlink lnk = new Hyperlink(); 
lnk.Inlines.Add(new Run { Text = linkText }); 
lnk.Foreground = Application.Current.Resources["pr0_orange"] as SolidColorBrush; 

挨拶ハイパーリンクとHyperLink class articleからテーマ/スタイルの動作による X39

答えて

2

それがStyleプロパティを持っていないので、ハイパーリンクは、Controlから継承されません。またはテンプレート。フォアグラウンドやFontFamilyなどのTextElementから継承されたプロパティを編集してハイパーリンクの外観を変更できますが、共通のスタイルやテンプレートを使用して変更を適用することはできません。テンプレートを使用する代わりに、一貫性を提供するためにHyperlinkプロパティの値に共通のリソースを使用することを検討してください。ハイパーリンクの一部のプロパティは、システムによって提供される{ThemeResource}マークアップ拡張値のデフォルト値を使用します。これにより、ユーザーが実行時にシステムテーマを変更すると、ハイパーリンクの外観が適切な方法で切り替わることができます。

スタイルまたはテンプレートでホバーの前景色を変更することはできません。唯一の方法は、システムThemeResourceのプロパティ値をSystemControlHyperlinkBaseMediumBrushに変更することです。しかし、私はこれをしないことを強くお勧めします。これは、すべての相対的スタイルを変更するためです。

HyperlinkButtonを使用できます。これは、VisualState PointerOverを設定するだけでホバーカラーを変更できます。 HyperlinkBut​​tonが要件を十分に満たすことができない場合は、カスタムコントロールを使用することをお勧めします。

+0

悲しいことに、どういうわけかテキストを含むRichTextBlockにフィーリングすることができない限り、hyperlinkBut​​tonを使用することはできません。 ドキュメントや何か...ただそれを忘れた – X39

+0

@ X39その場合、カスタムコントロールがあなたにとって最良の方法です。 –

関連する問題