开发人员工具的RTM版本。
我正在构建一个应用程序。在应用程序的某些部分,我有一些由Web服务提供的文本,我接受此文本并处理它以使文本中的URL充当超链接。
此容器是一个包装面板。
<wrap:WrapPanel x:Name="PostMessage2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
然后在页面的构造函数中,我有这个简单的代码。
PostMessage2.Children.Add(new HyperlinkButton()
{
Content = new TextBlock()
{
Text = "test url",
Foreground = new SolidColorBrush(Colors.White)
},
NavigateUri = new Uri("http://www.google.com/")
});
(我知道此代码不会打开IE会话并导航到Url)
现在当我运行这个程序时,我不会在屏幕上看到任何可见的内容,但是如果我点击网址开头的屏幕应该是,那么它会尝试导航到网址(这会导致异常,因为导航未正确处理)。
如果我在URL之前和之后添加了一个Textblock,那么这些块中的测试是可见的,它们将被分开大约3个空格,如果你点击它的中间,它将尝试导航到url。
所以我的问题是为什么超链接不可见但是它们是活跃的,因为你可以点击它们,我是否缺少一些明显的属性或设置?
提前感谢您的帮助。
答案 0 :(得分:2)
您不需要将HyperlinkButton的内容设置为TextBlock。它期待一个字符串,你可以在HLB上设置前景颜色:
PostMessage2.Children.Add(new HyperlinkButton()
{
Content = "test url",
Foreground = new SolidColorBrush(Colors.White),
NavigateUri = new Uri("http://www.google.com/")
});