加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 04:19:15 所属栏目:Windows 来源:网络整理
导读:我看到了一个代码示例,它创建了一个方法Window_Loaded(),该方法由XAML的“Window Loaded”事件调用: Window x:Class="TestModuleLoader.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.co
我看到了一个代码示例,它创建了一个方法Window_Loaded(),该方法由XAML的“Window Loaded”事件调用:
<Window x:Class="TestModuleLoader.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
    <Grid>
        ...
    </Grid>
</Window>

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

using System.Windows;

namespace TestModuleLoader
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void Window_Loaded(object sender,RoutedEventArgs e)
        {
            //what advantages do I have running code here? 
        }
    }
}

这样做有什么好处吗?

是否有一个“窗口加载周期”,如在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读