wpf卡死不响应任何交互

wpf卡死不响应任何交互,第1张

多线程颂虚;

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).


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12392075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存