gpt4 book ai didi

c# - 如何检测 RichTextBlock 在 Windows 应用商店应用程序中是否有溢出内容?

转载 作者:太空宇宙 更新时间:2023-11-03 16:02:45 29 4
gpt4 key购买 nike

我似乎永远无法让 HasOverflowContentRichTextBlock 上触发,即使我强制它更新其布局也是如此。这是我尝试过的:

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 没有向它发出实际上有溢出内容的信号?

编辑:好的,我能够在 MainPage 构造函数上订阅 this.Loaded 并且在这种情况下此设置确实正确显示,但是,它不是对于我的应用程序来说已经足够好了,那么如何在加载事件之外检查它呢?

最佳答案

因此,看起来必须将其添加到可视化树中。否则它不会渲染它。添加后,我可以调用 RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();并等待 renderTargetBitmap.RenderAsync(contentToBePrinted);我可以通过在不透明度为 0 的网格中添加 RichTextBlock 并将所有 RichTextBlockOverflow 也在运行时添加到该网格,从而使它适用于从 Metro 应用程序进行打印,这样我就可以让它们呈现并检查 HasOverflowContent 标志。这是我让它按照我想要的方式工作的唯一方法。

关于c# - 如何检测 RichTextBlock 在 Windows 应用商店应用程序中是否有溢出内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20599672/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com