我正在向TextBlock添加Inlines。 Run()内联工作。当然,由于某些原因,Hyperlink()在Windows 8中被弃用(使用Windows.UI.Xaml.Documents),因此我尝试使用C#将HyperlinkButton封装在InlineUIContainer中。我知道这个概念很合理,但我的代码失败了。
如果我注释掉“使用Windows.UI.Xaml.Documents;”这一行。然后我得到两个周围的内联,以显示在我的ListView中(使用下面的方法。)如果这行未被注释,则'link'的Inlines.Add正在抛出。我做错了什么?
public TextBlock enrichPostText(anFullPost post) { TextBlock text_block = new TextBlock(); text_block.Inlines.Clear();
var holdText = new Run();
holdText.Text = "Test start >> ";
text_block.Inlines.Add(holdText);
HyperlinkButton linkButton = new HyperlinkButton();
linkButton.NavigateUri = new Uri("http://www.cones.net");
linkButton.Content = "click me";
linkButton.Name = "_blank";
InlineUIContainer link = new InlineUIContainer();
link.Child = linkButton;
text_block.Inlines.Add(link);
var holdText2 = new Run();
holdText2.Text = " << end test.";
text_block.Inlines.Add(holdText2);
return (text_block);
}
答案 0 :(得分:2)
在MSDN上发现这可能会有所帮助。显然,TextBlock内容模型不支持InlineUIContainers,因此会抛出异常。 http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/96585db1-8ed4-4a12-8d63-b427dc0d543d/
答案 1 :(得分:0)
我刚尝试将RichTextBlock
更改为TextBlock
,当我尝试添加ArgumentException
时,我也看到InlineUIContainer
被抛出。我知道的唯一解决方案是使用RichTextBlock
代替;到目前为止,它已经满足了我的需求。