wpf – 为什么要在XAML Window.Loaded调用的方法中运行代码?

前端之家收集整理的这篇文章主要介绍了wpf – 为什么要在XAML Window.Loaded调用的方法中运行代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我看到了一个代码示例,它创建了一个方法Window_Loaded(),该方法由XAML的“Window Loaded”事件调用
  1. <Window x:Class="TestModuleLoader.Window1"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
  5. <Grid>
  6. ...
  7. </Grid>
  8. </Window>

但在后面的代码中,代码在构造函数和Window_Loaded()方法中都有效:

  1. using System.Windows;
  2.  
  3. namespace TestModuleLoader
  4. {
  5. public partial class Window1 : Window
  6. {
  7. public Window1()
  8. {
  9. InitializeComponent();
  10. }
  11.  
  12. private void Window_Loaded(object sender,RoutedEventArgs e)
  13. {
  14. //what advantages do I have running code here?
  15. }
  16. }
  17. }

这样做有什么好处吗?

是否有一个“窗口加载周期”,如在ASP.NET中进行,这有助于了解,即PreRender(),PostRender()等方法

是的,WPF控件有一个类似的生命周期,就像在ASP.NET中一样. WPF控件的生命周期更简单,因为它基本上包含初始化,加载和卸载事件(按此顺序).看到:

http://msdn.microsoft.com/en-us/library/ms754221.aspx

和迈克希尔伯格有一篇很好的文章,展示了initalized和load事件之间的区别:

http://blogs.msdn.com/mikehillberg/archive/2006/09/19/LoadedVsInitialized.aspx

猜你在找的Windows相关文章