日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

WPF入门教程系列三——Application介绍(续)

發(fā)布時間:2025/3/20 asp.net 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF入门教程系列三——Application介绍(续) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

接上文WPF入門教程系列二——Application介紹,我們繼續(xù)來學習Application

三、WPF應用程序的關閉

?????? WPF應用程序的關閉只有在應用程序的 Shutdown 方法被調用時,應用程序才停止運行。 ShutDown 是隱式或顯式發(fā)生,可以通過指定 ShutdownMode 的屬性值來進行設置。

?ShutdownMode選項

?

OnLastWindowClose(默認值):

應用程序關閉時,或最后一個窗口關閉時關閉,或調用Application對象的Shutdown() 方法時,應用程序關閉。

OnMainWindowClose

啟動窗體關閉或調用Application對象的Shutdown()方法時,應用程序關閉。(和C#的Windows應用程序的關閉模式比較類似)

OnExplicitShutdown

只有在調用Application對象的Shutdown()方法時,應用程序才會關閉。

?

  • 對ShutdownMode選項的更改,可以直接在App.xaml中更改,如下代碼。
  • <Application x:Class="WpfApp1.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"StartupUri="MainWindow.xaml" ShutdownMode="OnExplicitShutdown" ><Application.Resources></Application.Resources></Application>

    ?

    ?

    ?2.? 在代碼文件(App.xaml.cs)中修改ShutdownMode選項,但必須注意這個設置要寫在app.Run()方法之前 ,如下代碼。

    app.ShutdownMode = ShutdownMode.OnExplicitShutdown;app.Run(win);

    ?

    Application對象的其他屬性:

    名稱

    說明

    Current

    獲取當前?AppDomain的?Application?對象。

    Dispatcher

    獲取與此?DispatcherObject?關聯(lián)的?Dispatcher。 (繼承自?DispatcherObject。)

    MainWindow

    獲取或設置應用程序的主窗口。

    Properties

    獲取應用程序范圍的屬性集合。

    ResourceAssembly

    獲取或設置對于 WPF 應用程序的資源提供已裝箱統(tǒng)一資源標識符 (URI) 的?Assembly?。

    Resources

    獲取或設置應用程序范圍資源的集合,例如樣式和畫筆。

    ShutdownMode

    獲取或設置會導致?Shutdown?方法調用的情況。

    StartupUri

    獲取或設置自動顯示的 UI ,當應用程序啟動時。

    Windows

    獲取在應用程序中實例化窗口。

    ?

    四、添加Application對象事件

    名稱

    說明

    Activated

    當應用程序成為前臺應用程序時觸發(fā)。

    Deactivated

    當應用程序不再是前臺應用程序時觸發(fā)。

    DispatcherUnhandledException

    如果異常是由應用程序引發(fā),但未處理,觸發(fā)。

    Exit

    在應用程序關閉之前,觸發(fā),而且不能撤消。

    FragmentNavigation

    發(fā)生在應用程序的一個瀏覽器啟動導航到內(nèi)容片段導航時,會立即發(fā)生,如果所需片段在當前目錄,或者,在源 XAML 目錄加載后,如果所需片段在其他內(nèi)容。

    LoadCompleted

    在導航到在應用程序中的一個瀏覽器的目錄加載的分析完成并已呈現(xiàn)時觸發(fā)。

    Navigated

    當導航到在應用程序中使用的瀏覽器已找到的內(nèi)容時觸發(fā),這時它可能還沒有完成加載。

    Navigating

    在一個新的導航由應用程序,一個瀏覽器請求發(fā)生。

    NavigationFailed

    出現(xiàn)問題,則錯誤,當應用程序的一個瀏覽器導航到所請求的內(nèi)容時。

    NavigationProgress

    定期發(fā)生在應用程序中使用瀏覽器管理提供導航進度信息的下載過程。

    NavigationStopped

    發(fā)生在一個瀏覽器的 StopLoading 方法在應用程序的調用,或者,如果新的導航由瀏覽器請求,在當前導航正在進行的。

    SessionEnding

    當用戶在注銷或關閉操作系統(tǒng)關閉 Windows 會話時發(fā)生。

    Startup

    當 Application 對象的 Run 方法調用,發(fā)生。

    在應用程序中添加事件的方式有如下三種。

    第一種方式:

    1、在App.xaml中做事件的綁定,在App.xaml.cs文件中添加事件的處理方法

    ?? 在App.xaml文件中,具體添加方法見下圖。

    ?

    2、添加完事件之后的app.xml文件代碼如下

    <Application x:Class="WpfApp1.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"StartupUri="MainWindow.xaml" ShutdownMode="OnExplicitShutdown" Activated="Application_Activated" Exit="Application_Exit"><Application.Resources></Application.Resources></Application>

    3、在App.xaml.cs文件的代碼如下:

    using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Linq;using System.Threading.Tasks;using System.Windows;namespace WpfApp1{/// <summary>/// App.xaml 的交互邏輯/// </summary>public partial class App : Application{private void Application_Activated(object sender, EventArgs e){}private void Application_Exit(object sender, ExitEventArgs e){}}}

    ?

    4.在使用以上方式添加事件之后,如果在Visual Studio中按F5 執(zhí)行應用程序時,報以下錯誤“不包含適合于入口點的靜態(tài)‘Main’方法”。這個錯誤是由于Visual Studio把項目文件(*.csproj)中原來自動生成的app.xaml相關的定義進行了修改。具體區(qū)別如下:

     1) 直接新建的WPF項目中的有關App.xaml的定義如下:

    <ApplicationDefinition Include="App.xaml"><Generator>MSBuild:Compile</Generator><SubType>Designer</SubType></ApplicationDefinition>

    ?2) Visual Studio把修改后的App.xaml的配置代碼如下:

    <Page Include="App.xaml"><SubType>Designer</SubType><Generator>MSBuild:Compile</Generator></Page>

     第一段代碼中App.xaml在項目文件里面用ApplicationDefinition標簽定義。第二段代碼中App.xaml在項目文件里面用Page標簽定義,這種定義是指App.xaml只是一個頁面而已。

      因此,只需要把項目文件中將App.xaml的配置由Page修改成ApplicationDefinition即可。

    ?

    ?

    第二種方式

    ?1、可以像是在WinForm中的Program類中寫Main方法一樣,在WPF中一樣可以自定義一個app類中寫main及其他相關事件。

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;namespace WpfApp1{class App{[STAThread]static void Main(){// 定義Application對象作為整個應用程序入口 Application app = new Application();MainWindow win = new MainWindow();app.ShutdownMode = ShutdownMode.OnMainWindowClose;app.MainWindow = win;//是必須的,否則無法顯示窗體 win.Show();app.Run();app.Activated += app_Activated;app.Exit += app_Exit;}static void app_Activated(object sender, EventArgs e){throw new NotImplementedException();}static void app_Exit(object sender, ExitEventArgs e){throw new NotImplementedException();}}}

    第三種方式

  • 在App.xaml界面中,如下圖位置1處,輸入Exit事件名稱,Visual Studio 2013會彈出一個菜單“新建事件處理程序”,雙擊這個菜單,Visual Studio 2013就會自動創(chuàng)建一個“Application_Exit”事件,如下圖位置2處。
  • ?

    ?

    五、WPF應用程序生存周期

    WPF應用程序的生命周期與執(zhí)行順序,用MSDN上的一張圖片進行說明。下圖顯示了窗口的生存期中的主體事件的順序。

    ?

    轉載于:https://www.cnblogs.com/Im-Victor/p/10564995.html

    總結

    以上是生活随笔為你收集整理的WPF入门教程系列三——Application介绍(续)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。