關於Silverlight的Style機制與ResourceDictionary
前幾天在 FaceBook專頁 上 明城 提到了關於Silverlight中的Style機制,才恍然想起在先前的Blog和書上幾乎都完全沒有提到ResourceDictionary這個在SL3之後被加進來的物件,因此趁著SL4的書籍在做最後階段的整理,順便在Blog上提一下這個物件。 ResourceDictionary讓我們可以在宣告Resource時,以Dictionary的方式來建置,例如: 這樣有一個好處,ResourceDictionary是繼承自Dictionary類別的物件,當Resource非常多的時候,或是Resource是動態載入的時候,開發人員可能無法記得或熟知每一個Resource的名稱,我們可以透過底下這樣的程式碼在ResourceDictionary中確認某一個資源設定是否存在: //判斷TextBoxStyle1是否存在 if (this.RD1.Contains("TextBoxStyle1")) { … } 因此,當資源被放置在ResourceDictionary中之後,我們也可以透過程式碼來動態的設置樣式,例如: private void button1_Click(object sender, RoutedEventArgs e) { //判斷TextBoxStyle1是否存在 if (this.RD1.Contains("TextBoxStyle1")) { //套用Resource this.TextBox1.Style = RD1["TextBoxStyle1"] as Style; this.TextBox2.Style = RD1["TextBoxStyle1"] as Style; this.TextBox3.Style = RD1["TextBoxStyle1"] as Style; } else { MessageBox.Show("找不到此資源"); } } private void button2_Click(ob