public MainWindow()
{
InitializeComponent()
Loaded += MainWindow_Loaded
}
private async void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
//Thread.Sleep(3000)
//lblMsg.Content = "完成"
var result = await Task.Run(() =>
{
Thread.Sleep(3000)///耗时 *** 作
return "运腔完成"
})
lblMsg.Content = result//更改UI *** 作野悄燃
}
WPF容易跳出事件响应机制,这是因为WPF中的事件处理机制不同于传统的Windows编程模型。WPF使用基于委托的事件处理,它允许多个处理程序注册到一个事件上,而不是像传统模型那样只能处理一个事件。这意味着,当一个事件被触发时,它会调用所有注册的处理程序搏凳芹,这就可能导致出现混乱的响应。另外,WPF支持多种事件,例如 MouseDown,MouseUp,KeyDown,KeyUp等,这些事件可基毕以被触发多次,这可能会导致不稳定的响应,所以这也是WPF容易跳出事件粗含响应机制的原因之一。
Keydown 不会被 Run 响应, 原因是 Run 没有机会获得 input focus.RichTextBox 响应 Keydown 事件时, 可以通过检查
RichTextBox.Selection.Start.Parent 或
RichTextBox.Selection.End.Parent
来获得目前光标所在位置野灶枯颂洞的元素辩李, 例如是哪个 Run (或者说是 Inline element) 或哪个 Paragraph (或者说是 Block Element).
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)