Is there a way to get the size of a UIElement
that resides in memory and has not yet been rendered?
I currently have a routine that creates a Grid
from a DataTable
and then adds the Grid into a FixedDocument
. I need to know the size of the Grid
because I want to automatically switch from Portrait to Landscape if needed; or even change the FontSize
of the grid.
You can only determine this if there is an explicit
Width
orHeight
set. Even then, depending on the scenario, it may change at render time, since the Layout pass will not occur until it's rendered, andActualWidth
/ActualHeight
get set.You need to force a render of the item, or wait for the item to be rendered. You can then use the
ActualHeight
andActualWidth
properties.To force a render:
In this example the
MenuItem
has not been given an explicit height or width. However, forcing the render will render it taking the supplied header text and icon into consideration.