zoukankan      html  css  js  c++  java
  • WPF技巧(5)元素的加载与卸载(Loaded and Unloaded)

        FrameworkElement有两个初始化和一个卸载事件image

    还是以代码来示例

    一.Initialized
    触发条件(元素拥有容器,并初始化)
    当元素实例化以后并被加入到逻辑树中时会触发此事件,
    此事件可以获取到元素的初始值

    public Demo1()
    {
        InitializeComponent();
        panel = new StackPanel();
        Button btn = new Button();
        //触发Initialized
        btn.Initialized += new EventHandler(btn_Initialized);
        btn.Content = "xx";
        //不触发Initialized
        panel.Children.Add(btn);
    }
    
    private StackPanel panel;
    
    void btn_Initialized(object sender, EventArgs e)
    {
        
    }

    二.Loaded
    触发条件(处于逻辑树中(处于加载状态不一定是视觉化))
    panelDemo处于视觉树中
    当重新被添加到容器中时,此事件会重新触发

    Button btn = new Button();
    btn.Loaded += new RoutedEventHandler(btn_Loaded);
    panelDemo.Children.Add(btn);
    三.Unloaded
    处于视觉化状态下,并移除此元素则触发此事件


    注意点:
    在数据绑定的情况下,特别是TabControl这种控件,为提升效率(元素越多速度越慢),每次只会显示一个TabItem的Content,其他的不在视觉树中,那么只能操作逻辑树
  • 相关阅读:
    [HAOI2015]T2
    bzoj1036:[ZJOI2008]树的统计Count
    苹果树
    poj1151 Atlantis
    1593: [Usaco2008 Feb]Hotel 旅馆
    [JSOI2008]最大数maxnumber
    【HNOI2014】米特运输
    【HNOI2013】数列
    Luogu5221 Product
    【CQOI2014】数三角形
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1737242.html
Copyright © 2011-2022 走看看