c# - 如何在 C#/WPF 中检测 Grid 中的溢出
问题描述
我有一个简单的 Grid 对象,它有一个 Child,它是一个 TextBlock 对象,其中包含一些文本。该网格被插入到画布中。在开始时,WPF 计算网格的宽度和高度,以便 TextBlock 正确地适合它。问题是用户应该并且应该被允许调整网格的大小,这工作得很好。但是减少 Grid 会导致 TextBlock 比 Grid 更大,因此文本不再完全可见。我想问一下 C# 是否为我提供了像 Grid.hasOverlow() 这样的功能,我可以在其中检查内容是否大于父级。
这就是我基本上将 Textblock 添加到网格中的方式。
Grid grid = new Grid();
TextBlock tb = new TextBlock();
tb.Text = "Some Text";
grid.Children.Add(tb);
MyCanvas.Children.Add(grid);
解决方案
我不知道任何 Grid.hasOverflow 类型的函数,但是当您调整大小时,您可能只需要创建一个您的文本对象引用的委托回调。前任。
private delegate void OnGridResized(float newsizeX, float newsizeY);
private OnGridResized Callback;
//Your Function call
if (Callback != null) Callback.Invoke();
然后只需将您的文本调整大小事件订阅到清醒时
Main()
{
Callback += Text.Resize;
}
不知道这是否有帮助,但我希望它对你有用!
推荐阅读
- reactjs - TSX 中的路由身份验证
- python - 这个 for 循环是否在做我认为它正在做的事情?计算连续的 1 和 -1
- azure-data-factory - 向 ADF 文本文件输出添加换行符(这可以通过逻辑应用程序或映射数据流来完成)吗?
- size - 大小点 R 图使用分类器的问题
- java - 如何在加载 json 数据或对象并开始新活动时显示加载屏幕?
- swift - 如何在@completion 函数中使用输入
- javascript - 使用带有 Spring 后端的 Node
- python - 我如何在函数中输入数据,因为它不起作用?
- python - 如何在python中连续绘制3个图
- python - 如何获得鼠标和键盘的移动?- Python