У вас есть несколько опций, которые вы можете сделать, заставив вызвать Window.Measure
и Window.Arrange
сделает все значения для вычисления, или вы можете получить эти значения в событии Window.Loaded
.Эта же проблема уже обсуждалась по этому вопросу .
Если вы определяете размер содержимого:
window.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
window.Arrange(new Rect(0, 0, window.DesiredWidth, window.DesiredHeight));
Если вы используете явный размер окна:
window.Measure(new Size(Width, Height));
window.Arrange(new Rect(0, 0, window.DesiredWidth, window.DesiredHeight));
или
public MyWindow()
{
Loaded += delegate
{
// access ActualWidth and ActualHeight here
};
}