WPF高階教程(十)WPF程式的生命週期

2021-10-03 06:16:58 字數 2055 閱讀 4638

建立

xmlns=""

xmlns:x=""

其中比較關鍵的是指定了startupuri關閉

事件處理

// 1. 關聯事件處理程式

// xaml

// cs檔案

// 2. 直接複寫

protected override void onactivated(eventargs e)

onsessionending方法如果監聽,設定e.cancel = true,則系統的關閉,登出都會被阻止。

顯示初始load

專案中載入乙個

設定屬性,將 生成操作 屬性修改為splashscreen

處理命令列引數

獲取視窗例項

// 獲取應用程式例項

// 獲取主窗體

// 所有開啟的視窗引用,注意視窗在集合中的位置不是固定的,不能通過乙個數字索引來確定窗體

視窗間資訊互動

// 定義

prop listdocuments

// 在程式中任意位置使用

// 在使用的時候可以把document作為所有要跟蹤的視窗的基類

單例應用程式

如果我們的應用程式只能開啟乙份,比較容易想到的方法是在startup方法中,判斷是否有應用程式已經開啟,可以判斷程序,並且關閉本軟體。但是這種方法無法實現像word那樣,開啟doc檔案如果office已經開啟就在當前例項中開啟這個檔案,原因是按照我們原來的方法,當開啟軟體走到startup的時候,已經是新的應用程式了。要實現這樣的功能我們需要這樣的方法:

新增對於microsoft.visualbasic.dll的引用

建構函式中設定issingleinstance為true

複寫onstartup方法,建立wpf物件

protected override bool onstartup(

// direct multiple instances

protected override void onstartupnextinstance(

}} // an observablecollection is a list that provides notification

// when items are added, deleted, or removed. it's preferred for data binding.

private observablecollectiondocuments =

new observablecollection();

public observablecollectiondocuments

set

}

public void showdocument(string filename)

catch

}}

使用startup啟動應用程式:

public class startup

}

如果只需要在多開的時候關閉當前應用並且將之前的啟用,用下面的方法即可

platform.log.logfornet.loghelper.init();

}[dllimport("user32.dll")]

private static extern bool setforegroundwindow(intptr hwnd);

[dllimport("user32.dll")]

private static extern bool showwindowasync(intptr hwnd, int ncmdshow);

[dllimport("user32.dll")]

private static extern bool isiconic(intptr hwnd);

/// /// 啟用已開啟視窗

///

public static void raiseotherprocess()

setforegroundwindow(hwnd);

break;}}

}

WPF高階教程(十四)程式集資源

wpf中的資源分為兩類 其中,程式集資源指的是軟體開發中用到的,聲音,xml檔案等資源,這些資源被新增到專案中之後會被嵌入到編譯過得程式集中,會被編譯成二進位制資料。而物件資源是一些.net物件,希望能夠一次定義多次使用,包括畫刷,樣式,模板等。應用程式資源包括 音訊等應用程式需要使用的檔案,他們將...

WPF高階教程(十一)繫結說明

繫結是一種關係,告訴目標物件使用原物件的一些資訊設定其屬性值。繫結關係分為很多種,但是本質上來說是目標物件的屬性和源物件的屬性進行繫結。我們這裡我們要求 通過上面的說明我們發現,繫結這塊的內容還是比較多的,其複雜表現在源物件的型別比較多變,我們將其分為兩類 要實現乙個屬性變化,另乙個屬性跟著變化這樣...

WPF入門教程系列十六 WPF中的資料繫結 二

通過上一文章中的示例,學習了簡單的繫結方式。在這裡的示例,要學習一下繫結的模式,和模式的使用效果。首先,我們來做乙個簡單示例,這個示例是根據listbox中的選中項,去改變textblock的背景色。將 textblock 的背景色繫結到在 listbox 中選擇的顏色。在下面的 中針對textbl...