看来我可以格式化一个HyperlinkButton,就像我可以格式化一个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;
但是,TextDecoration不像在TextBlock中那样工作.我在鼠标悬停时自动下划线,但是希望在鼠标悬停之前也有下划线.
如何在Silverlight中的HyperlinkButton中添加下划线?
解决方法
如果你只需要一个静态下划线(没有鼠标悬停效果),你应该只使用一个TextBlock作为HyperlinkButton的内容.由于HyperlinkButton是一个ContentControl,它可以采用任何其他控件类型,因为它的内容(不仅仅是简单的字符串).
这是一些XAML,它将为您带来下划线的TextBlock作为HyperlinkButton的内容:
<HyperlinkButton NavigateUri="http://google.com"> <TextBlock Text="Google" TextDecorations="Underline" /> </HyperlinkButton>
您应该能够创建您的TextBlock,并将代码隐藏中的C#的HyperlinkButton的Content属性设置为代码,如果这是您正在做的.
正如David所说,编辑ControlTemplate肯定会使HyperlinkButton变为你的喜好,但是使用实际的下划线的TextBlock作为内容可能会更简单,而且更少的XAML,如果这是你需要做的.