首页 > 其他分享 >WPF 异步加载数据,窗体事件

WPF 异步加载数据,窗体事件

时间:2023-05-17 23:00:28浏览次数:44  
标签:异步 窗口 触发 元素 Window 窗体 事件 WPF 加载

加载WPF界面时,需要获取数据,而数据返回的时间比较长,这个时候可以异步加载数据到界面。

 

1、首先在XAML中触发窗口载入事件

 2、在后台代码中处理窗口载入事件

(1)找到主窗口类

 

(2)在MainWindow类中添加 XAML中加入的窗口载入事件

 

这个事件中可以放置各种界面预处理代码

 new Thread(p=>{DataBinding();}).Start();

界面加载时获取数据和绑定数据都写在DataBinding()方法中
private void DataBinding()
{
this.Dispatcher.BeginInvoke(new Action(()=>{
//编写获取数据并显示在界面的代码
}));
}

 

二、其它事件

1、窗口放大缩小还原处理事件

 

 2、编写触发事件MainWindow_Resize

 

3.窗口关闭事件。closed是窗口关闭之后触发的事件,closing是窗口关闭之前触发的事件。

 

4.隐藏窗口最大化最小化设置。选择窗口属性设置为NoResize (ResizeMode=NoResize ),最大化禁用:ResizeMode=CanMinimize

 

 

1.Window.Initialized
这个元素已经被构建出来,并且它的属性值都被设置好了,所以通常都是子元素先于父元素触发这个事件.当一个元素的 Initialized 事件被触发, 通常它的子树都已经初始化完成, 但是父元素还未初始化. 这个事件通常是在子树的 Xaml 被加载进来后触发的. 这个事件与 IsInitialized 属性相互绑定

2.Window.Activatied
获得焦点事件(会频繁触发)

3.Window.Loaded
这个元素不仅被构造并初始化完成,布局也运行完毕,数据也绑上来了,它现在连到了渲染面上(rendering surface),秒秒钟就要被渲染的节奏.到这个时候,就可以通过 Loaded 事件从根元素开始画出整棵树. 这个事件与 IsLoaded 属性绑定.

4.Window.ContentRendered
ContentRendered 事件在窗口的内容呈现完毕之后发生。如果该窗口不包含任何内容,则不会引发此事件。(窗体截图要用此事件)

5.Window.DeActivatied
失去焦点事件(会频繁触发)

6.Window.Closing
7.Window.UnLoad
8.Window.Closed
————————————————
 
 

整合自:WPF中窗口事件和鼠标事件总结_wpf 鼠标移开弹出框事件_herryone123的博客-CSDN博客 

https://blog.csdn.net/IQQQQU/article/details/125408728

标签:异步,窗口,触发,元素,Window,窗体,事件,WPF,加载
From: https://www.cnblogs.com/rboc/p/17410606.html

相关文章

  • 基于转子磁链定向的异步电机矢量控制系统仿真模型 转速在2
    基于转子磁链定向的异步电机矢量控制系统仿真模型转速在2秒由500变为1400,3秒由空载变为额定负载的图如下。转速可调。ID:88160676868051065......
  • 异步编排多任务异步执行
    参考: https://blog.csdn.net/teachy/article/details/104971814创建线程池:/***自定义线程池*intcorePoolSize,核心线程数=CPU核数*intmaximumPoolSize,最大线程数=CPU核数*2*longkeepAliveTime,等待时间,线程池线程>核心线程数,没......
  • vue elementui validate异步校验改成同步校验返回结果
     异步的校验 <script>import{defineComponent,ref}from'vue'exportdefaultdefineComponent({methods:{getFormDataStatus(){letresult=ref(false)this.ruleForm.validate((valid)=>{if(valid){......
  • WPF.Basic.ICommand使用
    WPF命令绑定的各种方式引言在WPF开发过程中,不得不学习的就是MVVM模式。但是在MVVM中又绕不开命令(Command)的使用。下面通过几种方式介绍我了解的WPF命令绑定方式。如何使用控件继承ICommand接口,直接使用Command首先通过这里简单介绍Command在MVVM中的使用。ViewModel类......
  • 使复杂异步方法变为同步。用promise阻塞
    使复杂异步方法变为同步假如有一个functionasyncFather(){awaitA();awaitb()},需要等方法A执行完,再继续往下执行B的代码,而A()中有很多东西,可能会导致异步。则可在A()内写成promise(resolve()),在A()内所有方法执行完毕后,再执行promise的resolve(),使得Father()在等到A()的resole才......
  • 异步消息的传递-回调机制
    1什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消......
  • C#异步方法async/await的三种返回类型
    有群友问C#异步方法async返回值Task和void的区别?看似简单,但不容易把它们用好。在C#中的异步编程已经成为现代编程的标配,异步方法(async/await)是实现异步编程的一种常用方式。在异步方法中,可以使用Task或void作为返回类型,还可以使用ValueTask返回类型。本文将介绍异步方法中3个......
  • C#异步有多少种实现方式?
    思维导航前言.NET异步编程模式C#异步有四种实现方式参考文章前言微信群里的一个提问引发的这个问题,有同学问:C#异步有多少种实现方式?想要知道C#异步有多少种实现方式,首先我们要知道.NET提供的执行异步操作的三种模式,然后再去了解C#异步实现的方式。.NET异步编程......
  • 三相异步电机基于空间矢量SVPWM的直接转矩 SVPWM- DTC控制
    三相异步电机基于空间矢量SVPWM的直接转矩SVPWM-DTC控制Matlab/Simulink仿真模型(成品)采用SVPWM的直接转矩控制1.转速环、转矩环、磁链环均采用PI控制2.采用空间矢量SVPWM调制3.含磁链观测、转矩控制、开关状态选择等4.相比于传统DTC控制,转矩的脉动更小如图所示ID:8320067452378......
  • 三相异步电机本体模型 Matlab/Simulink仿真模型(成品) 本模型利
    三相异步电机本体模型Matlab/Simulink仿真模型(成品)本模型利用数学公式搭建了三相异步电机的模型,可以很好的模拟三相异步电机的运行性能,适合研究电机本体时修改参考,电机的各波形都很好可以很好的模拟三相电机ID:1550674841299704......