Somewtimes WPF变成WTF之前=)需要的是适用所有绑定后,窗口的事件引发,但它被渲染
从MSDN:
FrameworkElement.Loaded event 当元素已布局时,呈现,和准备好互动。
Object lifetime events 加载的事件引发最终渲染之前,但布局系统之后计算出所有必要的值进行渲染。
我需要在应用所有绑定后调整代码背后的窗口屏幕放置。现在这在Loaded事件处理程序中完成。我看到窗户是如何跳到眼睛不太舒服的地方的。
UPDATE1
private void DialogViewLoaded(object sender, RoutedEventArgs e)
{
MaxHeight = SystemParameters.FullPrimaryScreenHeight * 0.8;
MaxWidth = SystemParameters.FullPrimaryScreenWidth * 0.8;
SizeToContent = SizeToContent.WidthAndHeight;
SizeToContent = SizeToContent.Manual;
MaxHeight = double.PositiveInfinity;
MaxWidth = double.PositiveInfinity;
WindowHelper.CenterWindowOnScreen(this);
}
这个代码实现,我想在XAML来实现该功能。 Flexible XAML-only layout. Is it possible?
“Window.Loaded”事件通常会调用加载视觉元素的“InitalizeComponents()”。所以在'Window.Loaded'运行时,没有可视元素。您可以使用[Dispatcher](http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.aspx)在稍后的[DispatcherPriority](http:// msdn。 microsoft.com/en-us/library/system.windows.threading.dispatcherpriority.aspx)比'渲染',这意味着它会在所有渲染完成后运行,但我认为这不会阻止窗口跳跃 – Rachel
我需要在渲染之前设置位置。 –
什么样的绑定是基于?在绘制任何东西之前,您可能不得不在代码隐藏中做一些杂乱的事情来评估值并定位窗口。 – Rachel