• WPF Application


    Application类作为启动的入口,在VS中,通常自动代码为我们继承了Application类,这样做的有点,我还没有理解到,但是我们先学到这个知识点。

    为了能够更好的控制整个启动过程,包括得到Active,LoadComplete,Deactive,SessionEnding等事件,可以主动改变程序的入口,即是static void Main(string[] args)方法的所在位置。

    我们主动添加一个Program.cs(当然叫别的名字是可以的)的文件,添加Main方法,并在其中修改启动,代码就可以了。说的比较粗略,看代码吧。

    Program.cs

     1 using System;
     2 
     3 namespace LearnWPF
     4 {
     5     class Program
     6     {
     7         [STAThread]
     8         public static void Main(string[] args)
     9         {
    10             App app = new App();
    11             myWInd m = new myWInd();
    12             app.MainWindow = m;
    13             m.Show();
    14             app.Run();
    15         }
    16     }
    17 }

    App.xaml.cs

     1 using System;
     2 using System.Diagnostics;
     3 using System.Windows;
     4 
     5 namespace LearnWPF
     6 {
     7     /// <summary>
     8     /// Interaction logic for App.xaml
     9     /// </summary>
    10     public partial class App : Application
    11     {
    12         protected override void OnActivated(EventArgs e)
    13         {
    14             base.OnActivated(e);
    15             Debug.WriteLine("OnActived");
    16         }
    17 
    18         protected override void OnDeactivated(EventArgs e)
    19         {
    20             base.OnDeactivated(e);
    21             Debug.WriteLine("OnDeactived");
    22         }
    23 
    24         protected override void OnExit(ExitEventArgs e)
    25         {
    26             base.OnExit(e);
    27             MessageBox.Show("Exiting");
    28         }
    29 
    30         protected override void OnSessionEnding(SessionEndingCancelEventArgs e)
    31         {
    32             base.OnSessionEnding(e);
    33             MessageBox.Show("you're quitting");
    34         }
    35 
    36         protected override void OnStartup(StartupEventArgs e)
    37         {
    38             base.OnStartup(e);
    39             MessageBox.Show("Staring");
    40         }
    41 
    42         protected override void OnLoadCompleted(System.Windows.Navigation.NavigationEventArgs e)
    43         {
    44             base.OnLoadCompleted(e);
    45             MessageBox.Show("completed");
    46         }
    47     }
    48 }

    App.xaml 这文件指明了启动的窗口等内容,所以需要相应地修改。

    1 <!--application 的 class属性可以随便写-->
    2 <!--application 的 StartupUri属性指明了 启动的窗体-->
    3 <Application x:Class="muhaha"
    4              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    5              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    6     <Application.Resources>
    7 
    8     </Application.Resources>
    9 </Application>

    但是,到了这里还是不行的;因为对于App.xaml在自动生成的代码里,会有Main方法入口,因此还需要改变程序的入口,在项目的属性里修改配置。请注意,刚刚添加Program.cs文件后,可能这里不会有,编译一次,就会在这里出现了,如下图所示。

    希望能够帮助一些同学。

  • 相关阅读:
    关于订单创建的service层
    使用注解@RestController返回json类型的数据
    关于lombok包(可使编程便捷)的一些使用
    Django学习笔记一十三——ORM查询练习
    Django学习笔记一十二——建立多对多结构表的三种方式
    Django学习笔记一十一——ORM学习三
    Django学习笔记一十——Django项目在python脚本中的调用
    Django学习笔记〇九——路由系统
    Django学习笔记〇八——模板语言系统
    Django学习笔记〇七——MCV和MTV框架介绍
  • 原文地址:https://www.cnblogs.com/warnet/p/5049991.html
Copyright © 2020-2023  润新知