WPF控件:"OnLoaded"虚拟功能在哪里?

new*_*man 10 wpf controls

在WinForm的控件中,有一个OnLoaded虚函数,但这似乎在WPF控件中缺失.我发现这个功能在某些情况下非常有用.例如,在控件"完全"初始化后,我可以在这里做一些事情.在WPF控件中,有一个OnInitialized虚函数,但是这个函数是从InitializeComponent函数调用的,这个函数太早了,它不允许派生类设置.是否有任何理由不在WPF中使用此功能?或者我错过了什么?

Edw*_*ing 8

您可以附加到Window对象的Loaded事件,并在事件处理程序中执行您想要执行的操作(假设您使用的是c#):

public MyWindow() //constructor
{
  this.Loaded += MyWindow_Loaded;
}

private void MyWindow_Loaded(object sender, RoutedEventArgs e)
{
  // do your stuff here
}
Run Code Online (Sandbox Code Playgroud)

  • 我知道我可以像这样解决它,但我更好奇为什么 WPF 删除了该功能。其实我也想知道为什么在WPF Window中将OnLoaded作为虚函数删除了。现在,我必须执行这个额外的钩子来取回我的 Loaded 函数。为什么? (2认同)