我看到Windows有一个Loaded
事件,但没有一个Loading
事件(就像有Closing
和Closed
事件一样)。
我的期望是,在窗口实际显示之前会发生Loaded
事件。然而,查看Window Lifetime Events页面后,它显示Loaded
事件发生在Activated
事件之后。
我把一些初始化代码放在Loaded
事件中,但在窗口显示之后出现了延迟,直到我的内容出现之前。那么,在窗口显示之前进行窗口初始化的最佳事件处理程序是什么?
我看到Windows有一个Loaded
事件,但没有一个Loading
事件(就像有Closing
和Closed
事件一样)。
我的期望是,在窗口实际显示之前会发生Loaded
事件。然而,查看Window Lifetime Events页面后,它显示Loaded
事件发生在Activated
事件之后。
我把一些初始化代码放在Loaded
事件中,但在窗口显示之后出现了延迟,直到我的内容出现之前。那么,在窗口显示之前进行窗口初始化的最佳事件处理程序是什么?
App.xaml:
<Application x:Class="MyProgram.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="App_StartUp" >
</Application>
App.xaml.cs:
namespace MyProgram
{
public partial class App : Application
{
private void App_StartUp(object sender, StartupEventArgs e)
{
// Create the model and MainWindow
MyModel model = CreateModel();
MainViewModel viewModel = new MainViewModel(model);
MainWindow = new MainWindow(viewModel); // Sets the DataContext
// Do things, like initialize your model
model.Initialize();
// Now show your window
MainWindow.Show();
}
}
}
DataContext
,并通过绑定、模板等让控件自行填充。其他任何方法都是不完美的解决方案。 - 15ee8f99-57ff-4f92-890c-b56153