2016-04-09 20 views
0

Derzeit struggeling Verständnis, wie die Windows.UI.Xaml.Documents.Hyperlink Textelement richtig ... Das Problem ist einfach: Ändern der "normalen" Vordergrundfarbe funktioniert gut, aber sobald der Hyperlink schwebt ändert sich seine Farbe (die ist einfach zu erklären)Ändern der Hover Farbe von Hyperlink

Die Frage, die ich mit kämpfen, ist: wie man den Vordergrund anderer visueller Zustände eines hyperlink textelement ändert (schwarz auf schwarz sieht sehr schlecht aus ... :))?

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

Grüße X39

Antwort

2

Nach Hyperlink und Thema/style Verhalten von HyperLink class article,

Hyperlink erbt nicht von Kontrolle, so dass es nicht über eine Eigenschaft Style oder eine Vorlage. Sie können die Eigenschaften bearbeiten, die von TextElement geerbt werden, z. B. Foreground oder FontFamily, um die Darstellung eines Hyperlinks zu ändern. Sie können jedoch keine allgemeinen Stile oder Vorlagen zum Anwenden von Änderungen verwenden. Verwenden Sie anstelle der Verwendung einer Vorlage die Verwendung gemeinsamer Ressourcen für Werte von Hyperlink-Eigenschaften, um Konsistenz zu gewährleisten. Einige Eigenschaften von Hyperlink verwenden Standardwerte aus einem {ThemeResource} Markup-Erweiterungswert, der vom System bereitgestellt wird. Dadurch kann die Hyperlink-Darstellung auf geeignete Weise umgeschaltet werden, wenn der Benutzer das Systemthema zur Laufzeit ändert.

Sie können die Hover-Vordergrundfarbe in einem Stil oder einer Vorlage nicht ändern. Die einzige Möglichkeit besteht darin, den Eigenschaftswert SystemControlHyperlinkBaseMediumBrush des Systems ThemeResource zu ändern. Aber ich empfehle Ihnen dringend, dies nicht zu tun, da dies alle relativen Stile ändern wird.

Sie können HyperlinkButton verwenden, die Sie die Hoover-Farbe ändern können, indem Sie einfach den PointerOver VisualState setzen. Wenn HyperlinkButton Ihre Anforderungen nicht gut erfüllen kann, empfehlen wir Ihnen, ein Steuerelement anzupassen.

+0

Leider ist es mir unmöglich, hyperlinkButton zu verwenden, es sei denn, es wäre möglich, es in einen RichTextBlock zu giddle, der auch irgendwie Text enthält ... Ich hoffte, ich vermisste etwas offensichtlich in der Dokumentation oder was auch immer ... sieht aber so aus habe es einfach vergessen – X39

+0

@ X39 In diesem Fall ist benutzerdefinierte eine Kontrolle der beste Weg für Sie. –

Verwandte Themen