Csharp/C#教程:WPF:Initialized和Loaded事件之间是什么?分享


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

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐