您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
WPF
内容介绍 1、新建WPF工程 2、Application介绍 3、Dispatcher介绍 4、Window 介绍 5、主要布局属性介绍 6、Grid网格布局 7、UniformGrid布局 8、DockPanel与ViewBox布局 9、Border与ViewBox布局 10、依赖属性(一) 11、依赖属性(二) 12、依赖属性(三) 13、依赖属性(四) 14、WPF中的数据绑定(一) 15、WPF中的数据绑定(二) 16、WPF中的数据绑定(三) 17、WPF中的数据绑定(四) 18、ListView示例(一) 19、ListView示例(二) 20、DataGrid示例(一) 21、DataGrid示例(二) 22、DataGrid示例(三) 23、引用FontAwesome矢量图 24、ListBox日志效果 25、Polygon绘制多边形 26、Ellipse绘制实心圆 27、数据模板DataTemplate 基于WPF的exe远程升级程序
1、新建WPF工程
3、Dispatcher介绍
激萌の小宅 博客园 WPF

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

Application介绍 - (二)

       WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离。


微软把WPF中经常使用的功能都封装在 Application 类中了。 Application 类具体有以下功能: 

        1、跟踪应用程序的生存期并与之交互。 

        2、检索和处理命令行参数。 

        3、检测和响应未经处理的异常。 

        4、共享应用程序范围的属性和资源。 

        5、管理独立应用程序中的窗口。 

        6、跟踪和管理导航。


Application对象的其他属性:

        Current:获取当前 AppDomain的 Application 对象。

        Dispatcher:获取与此 DispatcherObject 关联的 Dispatcher。 (继承自 DispatcherObject。)

        MainWindow:获取或设置应用程序的主窗口。

        Properties:获取应用程序范围的属性集合。

        ResourceAssembly:获取或设置对于 WPF 应用程序的资源提供已装箱统一资源标识符 (URI) 的 Assembly 。

        Resources:获取或设置应用程序范围资源的集合,例如样式和画笔。

        ShutdownMode:获取或设置会导致 Shutdown 方法调用的情况。

        StartupUri:获取或设置自动显示的 UI ,当应用程序启动时。

        Windows:获取在应用程序中实例化窗口。


添加Application对象事件:

        Activated:当应用程序成为前台应用程序时触发。

        Deactivated:当应用程序不再是前台应用程序时触发。

        DispatcherUnhandledException:如果异常是由应用程序引发,但未处理,触发。

        Exit:在应用程序关闭之前,触发,而且不能撤消。

        FragmentNavigation:发生在应用程序的一个浏览器启动导航到内容片段导航时,会立即发生,如果所需片段在当前目录,或者,在源 XAML 目录加载后,如果所需片段在其他内容。

        LoadCompleted:在导航到在应用程序中的一个浏览器的目录加载的分析完成并已呈现时触发。

        Navigated:当导航到在应用程序中使用的浏览器已找到的内容时触发,这时它可能还没有完成加载。

        Navigating:在一个新的导航由应用程序,一个浏览器请求发生。

        NavigationFailed:出现问题,则错误,当应用程序的一个浏览器导航到所请求的内容时。

        NavigationProgress:定期发生在应用程序中使用浏览器管理提供导航进度信息的下载过程。

        NavigationStopped:发生在一个浏览器的 StopLoading 方法在应用程序的调用,或者,如果新的导航由浏览器请求,在当前导航正在进行的。

        SessionEnding:当用户在注销或关闭操作系统关闭 Windows 会话时发生。

        Startup:当 Application 对象的 Run 方法调用,发生


        在应用程序中添加事件,我发现App.xaml的属性里面根本没有添加事件的方法,只能在MainWindow.xaml里面加。所以说,要想在App.xaml里面添加事件,也只能手动修改App.xaml的代码了。。。


WPF应用程序的启动

        关于如何在Visual Studio中创建一个“WPF应用程序”,前面的文章中已经说过了。请参见新建WPF工程

        在Visual Studio 2019中创建一个“WPF应用程序”,使用App.xaml文件定义启动应用程序。XAML从严格意义上说并不是一个纯粹的 XML 格式文件,它更像是一种 DSL(Domain Specific Language,领域特定语言),它的所有定义都会由编译器最后编译成代码。App.xaml文件默认内容如下图:


        当然,如果你习惯了把启动写在代码中。你也可以跟WinForm中一样,在类中定义一个Main方法来实现对WPF应用程序的启动。

        第一步:如下图,在“解决方案资源管理器”中使用鼠标左键选中App.xaml文件,然后鼠标右键,弹出“弹出菜单—》从项目中排除”,这样就在项目中去掉了我们刚才建立的App.xaml文件。


        第二步:现在中添加一个新类,类名为App.cs。如下图。在“解决方案资源管理器”中使用鼠标左键选中“WpfApp”项目,然后点击鼠标右键,弹出“弹出菜单”,按下图中所示操作。

     

        第三步:在弹出的“添加新项”界面中,选中“类”,把名称修改为“App.cs”。如下图。


        第四步:在“解决方案资源管理器”中双击App.cs(如下图),打开文件,然后可以分别写入以下三种方式的代码,进行启动效果的调试。

        

第一种启动应用程序的代码

using System;
using System.Windows;

namespace WpfApp
{
    class App
    {
        [STAThread] // 这个一定要加
        static void Main()
        {
            // 定义Application对象作为整个应用程序入口  
            Application app = new Application();
            // 方法一:调用Run方法 ,这种方式跟winform的调用一样
            MainWindow win = new MainWindow();
            app.Run(win);
        }
    }
}


第二种启动应用程序的代码

using System;
using System.Windows;

namespace WpfApp
{
    class App
    {
        [STAThread] // 这个一定要加
        static void Main()
        {
            // 定义Application对象作为整个应用程序入口  
            Application app = new Application();
            //指定Application对象的MainWindow属性为启动窗体,然后调用无参数的Run方法  
            MainWindow win = new MainWindow();
            app.MainWindow = win;
            //是必须的,否则无法显示窗体       
            win.Show();
            app.Run();
        }
    }
}


第三种启动应用程序的代码

using System;
using System.Windows;

namespace WpfApp
{
    class App
    {
        [STAThread] // 这个一定要加
        static void Main()
        {
            // 定义Application对象作为整个应用程序入口  
            Application app = new Application();
            // 通过Url的方式启动
            app.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
            app.Run();
        }
    }
}


上面的方法,最后执行的效果,如下图:

1、新建WPF工程
3、Dispatcher介绍

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

Application介绍 - (二)

       WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.cs,这有点类似于 Asp.Net WebForm,将定义和行为代码相分离。


微软把WPF中经常使用的功能都封装在 Application 类中了。 Application 类具体有以下功能: 

        1、跟踪应用程序的生存期并与之交互。 

        2、检索和处理命令行参数。 

        3、检测和响应未经处理的异常。 

        4、共享应用程序范围的属性和资源。 

        5、管理独立应用程序中的窗口。 

        6、跟踪和管理导航。


Application对象的其他属性:

        Current:获取当前 AppDomain的 Application 对象。

        Dispatcher:获取与此 DispatcherObject 关联的 Dispatcher。 (继承自 DispatcherObject。)

        MainWindow:获取或设置应用程序的主窗口。

        Properties:获取应用程序范围的属性集合。

        ResourceAssembly:获取或设置对于 WPF 应用程序的资源提供已装箱统一资源标识符 (URI) 的 Assembly 。

        Resources:获取或设置应用程序范围资源的集合,例如样式和画笔。

        ShutdownMode:获取或设置会导致 Shutdown 方法调用的情况。

        StartupUri:获取或设置自动显示的 UI ,当应用程序启动时。

        Windows:获取在应用程序中实例化窗口。


添加Application对象事件:

        Activated:当应用程序成为前台应用程序时触发。

        Deactivated:当应用程序不再是前台应用程序时触发。

        DispatcherUnhandledException:如果异常是由应用程序引发,但未处理,触发。

        Exit:在应用程序关闭之前,触发,而且不能撤消。

        FragmentNavigation:发生在应用程序的一个浏览器启动导航到内容片段导航时,会立即发生,如果所需片段在当前目录,或者,在源 XAML 目录加载后,如果所需片段在其他内容。

        LoadCompleted:在导航到在应用程序中的一个浏览器的目录加载的分析完成并已呈现时触发。

        Navigated:当导航到在应用程序中使用的浏览器已找到的内容时触发,这时它可能还没有完成加载。

        Navigating:在一个新的导航由应用程序,一个浏览器请求发生。

        NavigationFailed:出现问题,则错误,当应用程序的一个浏览器导航到所请求的内容时。

        NavigationProgress:定期发生在应用程序中使用浏览器管理提供导航进度信息的下载过程。

        NavigationStopped:发生在一个浏览器的 StopLoading 方法在应用程序的调用,或者,如果新的导航由浏览器请求,在当前导航正在进行的。

        SessionEnding:当用户在注销或关闭操作系统关闭 Windows 会话时发生。

        Startup:当 Application 对象的 Run 方法调用,发生


        在应用程序中添加事件,我发现App.xaml的属性里面根本没有添加事件的方法,只能在MainWindow.xaml里面加。所以说,要想在App.xaml里面添加事件,也只能手动修改App.xaml的代码了。。。


WPF应用程序的启动

        关于如何在Visual Studio中创建一个“WPF应用程序”,前面的文章中已经说过了。请参见新建WPF工程

        在Visual Studio 2019中创建一个“WPF应用程序”,使用App.xaml文件定义启动应用程序。XAML从严格意义上说并不是一个纯粹的 XML 格式文件,它更像是一种 DSL(Domain Specific Language,领域特定语言),它的所有定义都会由编译器最后编译成代码。App.xaml文件默认内容如下图:


        当然,如果你习惯了把启动写在代码中。你也可以跟WinForm中一样,在类中定义一个Main方法来实现对WPF应用程序的启动。

        第一步:如下图,在“解决方案资源管理器”中使用鼠标左键选中App.xaml文件,然后鼠标右键,弹出“弹出菜单—》从项目中排除”,这样就在项目中去掉了我们刚才建立的App.xaml文件。


        第二步:现在中添加一个新类,类名为App.cs。如下图。在“解决方案资源管理器”中使用鼠标左键选中“WpfApp”项目,然后点击鼠标右键,弹出“弹出菜单”,按下图中所示操作。

     

        第三步:在弹出的“添加新项”界面中,选中“类”,把名称修改为“App.cs”。如下图。


        第四步:在“解决方案资源管理器”中双击App.cs(如下图),打开文件,然后可以分别写入以下三种方式的代码,进行启动效果的调试。

        

第一种启动应用程序的代码

using System;
using System.Windows;

namespace WpfApp
{
    class App
    {
        [STAThread] // 这个一定要加
        static void Main()
        {
            // 定义Application对象作为整个应用程序入口  
            Application app = new Application();
            // 方法一:调用Run方法 ,这种方式跟winform的调用一样
            MainWindow win = new MainWindow();
            app.Run(win);
        }
    }
}


第二种启动应用程序的代码

using System;
using System.Windows;

namespace WpfApp
{
    class App
    {
        [STAThread] // 这个一定要加
        static void Main()
        {
            // 定义Application对象作为整个应用程序入口  
            Application app = new Application();
            //指定Application对象的MainWindow属性为启动窗体,然后调用无参数的Run方法  
            MainWindow win = new MainWindow();
            app.MainWindow = win;
            //是必须的,否则无法显示窗体       
            win.Show();
            app.Run();
        }
    }
}


第三种启动应用程序的代码

using System;
using System.Windows;

namespace WpfApp
{
    class App
    {
        [STAThread] // 这个一定要加
        static void Main()
        {
            // 定义Application对象作为整个应用程序入口  
            Application app = new Application();
            // 通过Url的方式启动
            app.StartupUri = new Uri("MainWindow.xaml", UriKind.Relative);
            app.Run();
        }
    }
}


上面的方法,最后执行的效果,如下图: