WPF簡單教程:Application類的使用
Application類是WPF型別中的一個基礎,是每一個WPF必有的部分。
Application類在應用程式中所處的位置
WPF應用程式中,Application類例項是應用程式例項的代表,每個WPF應用程式中都存在一個Application例項,它用於接收程式引數,處理程式事件。
一個不使用WPF XAML框架的應用程式例項程式碼
使用Application類的最簡單方式是手動建立它。下面例項簡單的演示了最小的應用程式:在應用程式的入口處建立名為Window1的視窗,並啟動一個新的應用程式:
using System;
using System.Windows;
public class Startup{
static void Main(){
//create the application
Application app = new Application();
//create the main window.
Window1 win = new Window1();
//Launch the application and show the main window.
app.Run(win);
}}
如果希望通過Main方法啟動應用程式並處理傳遞引數,可以通過在WPF程式中改變VS屬性配置來設定某個含有Main方法的類最為啟動物件。
可以看出在應用程式中,啟動順序一般都是啟動main方法,然後例項化application類,之後想application類中傳遞介面例項,這樣應用程式就啟動起來了。
然而真正的WPF肯定不是利用這種方法啟動的,從程式碼和邏輯的表現上看就不一樣。
但是肯定類似。
經典的WPF應用程式啟動例項
下面是一個常見WPF專案中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"
xmlns:local="clr-namespace:WpfApp1"
StartupUri="Window1.xaml"
ShutdownMode="OnLastWindowClose">
<Application.Resources>
</Application.Resources>
</Application>
本例中採用了app.xaml來配置應用程式,它製造了一個派生類App,派生於Application類,位置在於WpfApp1.App。可以看到WPF工程中是沒有Main方法存在的,它應該利用了某種框架提供的類似方法,在利用反射等預設機制工作的過程中呼叫了Main方法。Main方法肯定是存在的,但是讓WPF框架給藏起來了。
xaml檔案是WPF工程中的類模板,VS利用XAML語句自動生成C#類App.g.cs。
StartupUri指定了應用程式啟動的主介面是什麼。在WpfApp1.App中可以自定義語句用來處理App接收到的命令列引數和應用程式事件處理程式碼。一般用於處理應用程式事件的方法可以利用繼承特性重寫,另一方面可以利用app.xaml配置之後關聯方法。一般採用app.xaml進行配置,這樣比較清楚明白。
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"
xmlns:local="clr-namespace:WpfApp1"
Startup="Application_Startup"
ShutdownMode="OnLastWindowClose">
<Application.Resources>
</Application.Resources>
</Application>
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_Startup(object sender, StartupEventArgs e)
{
MainWindow fMain = new WpfApp1.MainWindow();
frmLogin fLogin = new frmLogin();
if(fLogin.ShowDialog() == true)
{
fMain.Show();
}
else
{
fMain.Close();
}
}
}
}
這裡實現了一個登入視窗的創意,在app.xaml中指定了Startup屬性(不是StartupUri)也就表明了在Application物件例項化之後,會呼叫Application_Startup方法進行進一步處理。
相關推薦
WPF簡單教程:Application類的使用
Application類是WPF型別中的一個基礎,是每一個WPF必有的部分。 Application類在應用程式中所處的位置 WPF應用程式中,Application類例項是應用程式例項的代表,每個WPF應用程式中都存在一個Application
一分鐘教你簡單教程:AutoCAD怎麼繪製紅綠燈?
關於AutoCAD的話,我們也都應該很熟悉了,隨著CAD的應用的範圍的推廣,對於設計的我們看來說,相關的CAD繪圖輔助軟體確實幫我們節省了不少的時間,大大的提高了我們的工作效率,那麼關於CAD繪圖,你有了解多少?那就舉一個最簡單的生活案例吧,CAD怎麼繪製紅綠燈?CAD中想要畫一個紅綠燈,該
Matlab簡單教程:迴圈
迴圈輸出變數 for i=1:4 i end 其中1:4代表一個行向量1 2 3 4,在matlab中,行向量的另外一個表示方法是[1 2 3 4],即for i=1:4等價於for i=[1 2 3 4],編寫程式時牢記一個點:對於某次固定的迭
MPAndroidChart 教程:ChartData類,ChartData子類, DataSet類,DataSet子類(十二)
一、ChartData 類 為了讓大家更容易理解,這裡先簡單介紹下 MPAndroidChart 的資料模型 ChartData 。後面有文章再詳細介紹該圖示庫的其它資料型別。 ChartData 類是所有資料類的基類,比如 LineData,BarDa
史上最簡單教程:向第三方jar包注入自己的程式碼
注意:全文極短,適用於各種反編譯小白,程式小白,讀完僅需2分鐘! 我們經常使用第三方庫,但當我們遇到一些個性化需求,第三方庫沒有預留介面的時候,怎麼辦? 比如我們專案中用到友盟的社會化分享元件,但是友盟的分享對話方塊實在是醜!而他們又沒有留下足夠的介面支援我
Matlab簡單教程:函式
無引數,無返回值 function run() for i=1:10 disp(i); end end 有引數 function run(from,to) for i=f
android application類簡單介紹(一)
cati theme text color raw sdn water bsp public 每次應用程序執行時。應用程序的application類保持實例化的狀態。通過擴展applicaiton類,能夠完畢下面3項工作: 1.對android執行時廣播的應用程序
Wpf Application類的任務:
rtu 操作 strong start end 命名 esp title exc 首先Application能夠實現幾種功能,比如訪問命令行參數,獲取當前程序類的實例,以及常見的單窗口程序實例. 訪問命令行參數: 第一種: 獲取獲取方式使用Environment.G
博客園WPF Application類
pro dialog 通過 關閉 com mouse 總結 4.5 init 所有的WPF程序,都是由Application類實例創建,該類負責打開當前應用程序和窗體,並且決定如何關閉應用程序等。Application類的主要功能可以簡單總結以下幾點: 1、保持主線程 使用
eclipse 運行錯誤:在類XXX中找不到 main 方法, 請將 main 方法定義為: public static void main(String[] args) 否則 JavaFX 應用程序類必須擴展javafx.application.Application
分享圖片 java stat 報錯 es2017 pub .... img nbsp 新建了一個類Hello: 代碼: 第一次運行報錯: 點擊關閉該類的界面時出現: 點擊是,然後再次打開,可以正確執行,結果為: 這是為什麽.... ec
Android:全面解析 熟悉而陌生 的Application類使用
screen 存儲 程序啟動 兩個 com 完全 @override mat 例子 前言 Applicaiton類在 Android開發中非常常見,可是你真的了解Applicaiton類嗎? 本文將全面解析Applicaiton類,包括特點、方法介紹、應用場景和具體使用,
簡單的一個MySQL類的實現:
ges 方法 自動 分享圖片 == PE 生成 bubuko 隨機 ‘‘‘定義MySQL類:1.對象有id、host、port三個屬性2.定義工具create_id,在實例化時為每個對象隨機生成id,保證id唯一3.提供兩種實例化方式,方式一:用戶傳入host和port 方
轉:完整的最簡單的譜聚類python代碼
得到 for details -c 簡單的 enum off ads odin http://blog.csdn.net/waleking/article/details/7584084 針對karate_club數據集,做了譜聚類。由於是2-way clusterin
WPF中的Application類。
顯示 背景圖片 之前 border cee spa gif from clas 原文:WPF中的Application類。Application對象用的名稱空間是system.windows 1、手動創建Application對象步驟。 1.1)、把項目中的App.Xa
Python入門學習:1.變量和簡單的數據類型
import word python使用 com 其中 小數位 小數 ring 很多 python入門學習:1.變量和簡單的數據類型 關鍵點:變量、字符串、數字 1.1 變量的命名和使用1.2 字符串1.3 數字1.4 註釋 1.1 變量的命名和使用 ??變量,顧名思
最簡單的Docker映象教程:從頭基於空映象scratch建立一個新的Docker映象
我們在使用Dockerfile構建docker映象時,一種方式是使用官方預先配置好的容器映象。優點是我們不用從頭開始構建,節省了很多工作量,但付出的代價是需要下載很大的映象包。 比如我機器上docker images返回的這些基於nginx的映象,每個都超過了100MB,而一個簡單的
Android進階(三):Application啟動過程(最詳細&最簡單)
1.前言 最近一直在看 《Android進階解密》 的一本書,這本書編寫邏輯、流程都非常好,而且很容易看懂,非常推薦大家去看看(沒有收廣告費,單純覺得作者寫的很好)。 上一篇簡單的介紹了Android進階(二): 應用程序啟動過程,最終知道了ActivityThrea
最簡單的教程:在Ubuntu作業系統裡安裝Docker
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。 今天這篇文章咱們就來將Docker安裝到Ubuntu
常用程式碼整理:Application 基類、Activity 基類
說明:大部分內容都是參考別的文章,這裡做整理是為了以後的程式設計有實用的模板,可以即需即用。 一、MyApplication import android.app.Application; public class MyApplication extends
屬性動畫:ValueAnimator類和ObjectAnimator類的簡單使用
ValueAnimator類: ValueAnimator anim = ValueAnimator.ofInt(0, 3); // ofInt()作用有兩個 // 1. 建立動畫例項 // 2. 將傳入的多個Int引數進行