有没有办法获取UIElement
驻留在内存中但尚未渲染的 a 的大小?
Grid
我目前有一个从 a创建 aDataTable
然后将 Grid 添加到 a中的例程FixedDocument
。我需要知道的大小,Grid
因为如果需要我想自动从纵向切换到横向;甚至改变FontSize
网格的。
有没有办法获取UIElement
驻留在内存中但尚未渲染的 a 的大小?
Grid
我目前有一个从 a创建 aDataTable
然后将 Grid 添加到 a中的例程FixedDocument
。我需要知道的大小,Grid
因为如果需要我想自动从纵向切换到横向;甚至改变FontSize
网格的。
您需要强制渲染该项目,或等待该项目被渲染。然后,您可以使用ActualHeight
和ActualWidth
属性。
强制渲染:
MenuItem item = new MenuItem();
item.Header = "bling";
item.Icon = someIcon;
//Force render
item.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
item.Arrange(new Rect(item.DesiredSize));
在这个例子中,MenuItem
没有给出明确的高度或宽度。但是,强制渲染将考虑提供的标题文本和图标来渲染它。
Width
只有存在显式或Height
集合时,您才能确定这一点。即使那样,根据场景,它可能会在渲染时发生变化,因为布局传递在它被渲染之前不会发生,并且ActualWidth
/ActualHeight
得到设置。