WPF:Initialized和Loaded事件之间是什么?
我想在首次显示Window或Control时运行一些代码。 我不能使用Loaded,因为它可以不止一次。 我不能使用Initialized,因为这是由构造函数完成的。
介于两者之间的事件吗?
不幸的是没有这样的事件。 你可以在加载方法中使用布尔值来确保你的东西只触发一次 –
if(!IsSetUp) { MySetUpFunction(); IsSetUp = true; }
在这里查看WPF Windows生命周期事件:
https://msdn.microsoft.com/en-us/library/ms748948.aspx#Window_Lifetime_Events
alt text https://sofzh.miximages.com/c%23/IC155674.png
作为存储布尔标志的替代方法,您可以使用扩展方法并将包装委托给假装仅Loaded
一次。
上述就是C#学习教程:WPF:Initialized和Loaded事件之间是什么?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public static void OnLoadedOnce( this UserControl control, RoutedEventHandler onLoaded) { if (control == null || onLoaded == null) { throw new ArgumentNullException(); } RoutedEventHandler wrappedOnLoaded = null; wrappedOnLoaded = delegate(object sender, RoutedEventArgs e) { control.Loaded -= wrappedOnLoaded; onLoaded(sender, e); }; control.Loaded += wrappedOnLoaded; } ... class MyControl : UserControl { public MyControl() { InitializeComponent(); this.OnLoadedOnce(this.OnControlLoaded /* or delegate {...} */); } private void OnControlLoaded(object sender, RoutedEventArgs e) { } }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1010741.html