Comment puis-je ajouter un trait de soulignement pour un HyperlinkButton dans Silverlight?
Il semble que je peux formater un HyperlinkButton de la même façon, je peux formater un TextBlock:
HyperlinkButton hyperlinkButton = new HyperlinkButton();
hyperlinkButton.Content = "google";
hyperlinkButton.NavigateUri = new Uri("http://www.google.com");
hyperlinkButton.TargetName = "blank";
hyperlinkButton.Foreground = XamlHelpers.GetColorFromHex("555");
hyperlinkButton.TextDecoration = ... //error
hyperlinkButton.FontWeight = FontWeights.Bold;
Cependant, TextDecoration ne fonctionne pas comme il le fait dans le TextBlock. Je reçois un système automatique de souligner lors du passage de la souris mais aimerais qu'elle ait un soulignement avant de passer la souris en tant que bien.
Comment puis-je ajouter un trait de soulignement pour un HyperlinkButton dans Silverlight?
OriginalL'auteur Edward Tanguay | 2010-06-29
Vous devez vous connecter pour publier un commentaire.
Si vous avez juste besoin d'un statique de soulignement (pas d'effets de mouseover), vous devez juste utiliser un TextBlock que le contenu de la HyperlinkButton. Depuis HyperlinkButton est un ContentControl il peut prendre n'importe quel autre type de contrôle, comme c'est le contenu (plus que de simples chaînes de caractères).
Voici quelques XAML qui vous permettra d'être souligné TextBlock que le contenu d'un HyperlinkButton:
Vous devriez être en mesure de créer votre TextBlock et de définir le Contenu de la propriété de votre HyperlinkButton avec C# dans le code-behind ainsi, si c'est ce que vous faites.
Comme le dit David, la modification d'un ControlTemplate va certainement travailler au style d'une HyperlinkButton à votre goût, mais avec une réelle souligné TextBlock que le contenu peut être plus simple et beaucoup moins XAML si c'est tout ce que vous devez faire.
Pour Supprimer la Boîte Bleue à la charge de l'événement: Rectangle rect = linkButton.ChildrenOfType<Rectangle>().Où(i => je.Nom.Equals("FocusVisualElement")).FirstOrDefault(); if (rect != null) rect.StrokeThickness = 0;
OriginalL'auteur Dan Auclair
Modifier le modèle de contrôle. J'ai déchiré ce par l'Expression Blend.
Modifier la visibilité sur ce contrôle:
OriginalL'auteur David