首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测Windows应用程序中的RichTextBlock是否存在溢出内容?

如何检测Windows应用程序中的RichTextBlock是否存在溢出内容?
EN

Stack Overflow用户
提问于 2013-12-15 20:54:44
回答 1查看 402关注 0票数 2

我似乎无法让HasOverflowContentRichTextBlock上触发,即使我强迫它更新它的布局。以下是我尝试过的:

代码语言:javascript
复制
public MainPage()
{
    this.InitializeComponent();
    RichTextBlock block = new RichTextBlock();
    RichTextBlockOverflow overflow = new RichTextBlockOverflow();
    block.OverflowContentTarget = overflow;
    block.Width = 100;
    block.Height = 100;
    Paragraph paragraph = new Paragraph();
    for (int i = 0; i < 1000; i++)
    {
        Run run = new Run();
        run.Text = "FILLER";
        paragraph.Inlines.Add(run);
    }
    block.Blocks.Add(paragraph);
    block.UpdateLayout();
    if (block.HasOverflowContent)
    {
        // This line will never be hit.
    }
    MainGrid.Children.Add(block);
}

为什么HasOverflowContent没有发出信号,表示它确实存在溢出内容?

编辑:好的,我可以在this.Loaded构造函数上订阅MainPage,在这种情况下,这个设置确实会正确显示,但是,对于我的应用程序来说,这还不够好,所以我如何在加载事件之外检查这个设置呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-18 02:09:12

因此,它似乎必须添加到视觉树。否则它不会渲染它。一旦添加,我就可以调用RenderTargetBitmap renderTargetBitmap = new ();并且等待RenderTargetBitmap()--我可以通过在网格中添加具有0不透明度的RichTextBlock,以及所有RichTextBlockOverflow在运行时也到该网格中来实现这一功能,从而让它们呈现并检查HasOverflowContent标志。这是我能让它按我想要的方式工作的唯一方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20599672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档