Silverlight中的主題設定

2022-03-08 19:36:33 字數 2430 閱讀 9626

關於theme,我的理解是和asp.net主題中的css是乙個意思,當然,sl中的樣式更加的強大。

第一種方式:

1,裝完silverlight tookit之後,在c:\program files\microsoft sdks\silverlight\v3.0\toolkit\jul09\themes目錄下面會有一些主題的dll,我們引用其中乙個dll檔案,以system.windows.controls.theming.shinyred.dll為例

2,在xaml中新增對這個dll的引用

xmlns:red="clr-namespace:system.windows.controls.theming;assembly=system.windows.controls.theming.shinyred"
3,把這裡的主題當成乙個控制項,那麼需要使用這個主題的控制項應該是其子控制項

width="207"

margin="35,39,158,81"

height="180">

margin="10">button>           

height="23"                    

name="button1"

width="75" />

stackpanel>

red:shinyredtheme>

4,因為主題控制項中只能包含乙個子控制項,所以這裡使用了乙個stackpanel作為容器

效果:

其已經覆蓋了對根元素的background設定的另一種顏色。

第2種方式:

1,選擇乙個主題檔案,可以從c:\program files\microsoft sdks\silverlight\v3.0\toolkit\jul09\themes\xaml目錄下選擇,這裡將其複製到themes檔案中。

2,將檔案新增進來之後,有乙個地方是很關鍵的,就是將rainierorange.xaml的buildaction的屬性由page改為content,如果不這麼做的話,vs會爆出ag_e_parser_bad_property_value這樣的錯誤,同時需要新增主題檔案中引用到的dll。

3新增system.windows.controls.theming.toolkit.dll,並在頁面進行引用

xmlns:theme="clr-namespace:system.windows.controls.theming;assembly=system.windows.controls.theming.toolkit"

4,應用主題:

theme:implicitstylemanager.resourcedictionaryuri="themes/rainierorange.xaml"

height="382">

button>

stackpanel>

grid>

5,這裡我們設定了背景為blcak,看看效果:

其實效果就跟第一種不一樣了,它可以控制到應用主題的控制項。

擴充套件:動態換主題

主要就是theme兩種主題可以切換,因為只是模擬,所以ui上只放了乙個listbox用來選擇不同的主題

public void loadtheme()

);

this.listbox1.items.add(new comboboxitem() );           

this.listbox1.selectionchanged +=

(obj, e) =>
};
}
有乙個地方需要注意的就是對於themes下的xaml檔案buildaction不能為page型別,否則會出現無法找到對應資源的錯誤

**:

Silverlight中的DataGrid繫結資料

首先寫乙個類 public class employee public string lastname public decimal salary public datetime startdate public bool isvested public string gender 接著再寫乙個類,...

Silverlight中的DataGrid繫結資料

首先寫乙個類 public class employee public string lastname public decimal salary public datetime startdate public bool isvested public string gender 接著再寫乙個類,...

Silverlight中的DataGrid繫結資料

首先寫乙個類 public class employee public string lastname public decimal salary public datetime startdate public bool isvested public string gender 接著再寫乙個類,...