4

我正在将内联添加到 TextBlock。Run() 内联工作。当然,由于某种原因,Windows 8 中不推荐使用 Hyperlink()(使用 Windows.UI.Xaml.Documents),所以我尝试使用 C# 将 HyperlinkBut​​ton 封装在 InlineUIContainer 中。我知道这个概念是合理的,但我的代码失败了。

如果我注释掉“使用 Windows.UI.Xaml.Documents;”这一行 然后我让两个周围的内联显示在我的 ListView 中(它使用下面的方法。)如果未注释此行,则 Inlines.Add for 'link' 正在抛出。我究竟做错了什么?

    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);
    }
4

2 回答 2

2

刚刚在 MSDN 上找到了这个,这可能会有所帮助。显然 TextBlock 内容模型不支持 InlineUIContainers 所以它会抛出异常。 http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/96585db1-8ed4-4a12-8d63-b427dc0d543d/

于 2013-02-03T20:31:55.700 回答
0

我刚刚尝试将 my 更改RichTextBlock为 a TextBlockArgumentException当我尝试添加InlineUIContainer. 我知道的唯一解决方案是RichTextBlock改用;到目前为止,它一直在满足我的需求。

于 2012-12-09T05:22:22.183 回答