WPF - 在内存中获取UIElement的大小?

Son*_*Boy 7 size wpf wpf-controls uielement

有没有办法获得一个UIElement存在于内存中并且尚未呈现的大小?

我目前有一个例程,它创建一个Gridfrom a DataTable然后将Grid添加到一个FixedDocument.我需要知道它的大小,Grid因为我想根据需要自动从肖像切换到横向; 甚至改变FontSize网格.

Tim*_*oyd 19

您需要强制渲染项目,或等待渲染项目.然后,您可以使用ActualHeightActualWidth属性.

强制渲染:

  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));
Run Code Online (Sandbox Code Playgroud)

在此示例中,MenuItem未给出明确的高度或宽度.但是,强制渲染将使其考虑提供的标题文本和图标.