閒話WPF之十六(WPF中的資源 2 )

2022-02-28 08:11:29 字數 965 閱讀 7129

程式很簡單,在視窗中新增了兩個按鈕,我們需要關注的是其中對content屬性。這個屬性的作用就是設定按鈕的內容。為什麼這裡的名稱不是text,而是content?如此命名的原因和wpf中控制項乙個非常重要的概念有關:wpf中幾乎任何的控制項(也就是element)都可以作為乙個容器存在。也就是說我們在content屬性中可以包含其它任何你想顯示的內容。不止是字串文字。這種抽象的處理使我們可以把所有的內容等同對待,減少了很多處理上的麻煩。在本例子中,content屬性被和乙個testres1和testres2關聯起來。這個testres到底是什麼呢?這就是動態資源的名稱。具體的內容在顯示按鈕的時候決定。

注意上面window中的loaded屬性,通過它我們可以設定乙個函式名稱,它將window載入完成後被呼叫。下面就看看如何用**控制testres:

private void onloaded(object sender, routedeventargs e)

onloaded是window1類中的乙個成員函式,在這個函式裡,我們需要新增資源,因為我們的xaml中需要使用testres1和testres2,執行時如果找不到對應資源,程式將失敗。

現在,我們呼叫add方法新增資源。第乙個引數是資源的名稱,第二個引數是新增的資源物件。

程式的執行效果如圖1:

圖1                                                圖2

接下來我們看看修改資源的方法。在上面xaml的第乙個按鈕的click屬性中我們指定了乙個onclick事件方法。它將在點選按鈕時呼叫,現在我們通過這個事件來修改另乙個按鈕的content資源:

private void onclick(object sender, routedeventargs e)

onloaded實現同樣的簡單,先呼叫remove方法刪除已有的testres2資源,然後重新新增乙個新的testres2資源物件。點選第乙個按鈕後,下面按鈕的文字將自動修改為新的資源物件。執行效果如圖2。 

閒話WPF之二二(WPF中的Style)

style是一種修改屬性值是方法。我們可以將其理解為對屬性值的批處理。對批處理大家應該不會感到預設。對,通過style我們可以批量修改屬性的值。先從乙個簡單的style例子開始 xmlns x title viewer3d settings 第一感覺你可能會奇怪,為什麼style在資源裡呢?我個人直...

閒話WPF之一(WPF的結構)

wpf 個人認為在 ui的實踐中,使用者需要的是易於操作的,更加絢麗的介面。這兩個應該是最基本 也是最重要的宗旨。而對於開發人員就是要用最簡單的方法開發出盡可能漂亮的介面,並且效率也不能太差。要求是不是有些過分啦!除了在一些 web開發和特殊的應用中,很少有開發組配備單獨的美工,至少目前是這樣吧!根...

WPF之資源詞典

1 可以把資源詞典看作是乙個容器,這個容器可以存放各種各樣的控制項樣式,其他wpf窗體只需要引用這個容器的樣式就行了,從而避免大量的重複 123 buttonstyle.xaml 45 其中 buttonstyle.xaml 是資源詞典的名字。3 wpf窗體在引用資源詞典中的樣式時有兩種引用方式,一...