2010-05-14 117 views
3

我已經創建了兩個不同的網格背景和單選按鈕樣式在我如何將樣式應用於整個Silverlight應用程序?

App.xaml. 

用戶可以選擇任何風格的改變頁面即的外觀:更改單選按鈕的背景和風格。

現在,當我點擊raduio按鈕時,應用程序導航到另一個頁面,風格消失。

有沒有辦法在應用程序級別設置樣式,或者我需要將styleVar存儲爲全局變量並檢查第二頁加載,然後根據styleVar應用樣式。

回答

3

是像傑夫Wilcox表示隱造型是在Silverlight 4。所以,如果你想創建一個風格,是該類型的所有控件的默認一個新事物範圍XAML文件或整個應用程序(如果放置在App.xaml中),則會省略x:Key屬性。

<Style x:Key="ButtonStyle" TargetType="Button"> 

要使用的ButtonStyle你會寫:

<Button Content="A button" Style="{StaticResource ButtonStyle}" /> 

離開了X:重點將允許您使用的ButtonStyle爲默認值。通過命名樣式設置到該按鈕空或覆蓋:

<Style TargetType="Button"> 

<Button Content="A button with style that has no x:Key value" /> 

現在,如果你需要創建一個按鈕,沒有這個默認的樣式,你可以設置按鈕的樣式屬性爲x 。

<Button Content="Default Silverlight button" Style="{x:Null}"/> 

Silverlight 4中Styles的另一個新事物是您可以創建基於現有樣式的新樣式。雖然這不是你的問題,我會舉一個例子:

<Style TargetType="Button" BasedOn="{StaticResource BasedStyle}"> 

關於在文檔中隱含的造型:http://msdn.microsoft.com/en-us/library/system.windows.style%28VS.95%29.aspx

隱式樣式

在Silverlight 4中,您可以設置隱式地設計 。也就是說,您可以將 某種風格應用於某個類型的所有元素。當聲明資源 未使用x:Key值時, x:Key值假定值爲 TargetType屬性。如果隱式設置 樣式,則樣式爲 僅適用於與TargetTypeType精確匹配的類型 ,而不適用於從TargetType 值導出的元素 值。例如,如果您隱式創建一個 樣式所有 切換按鈕在 應用控制,和你的應用程序 切換按鈕和CheckBox控件 (複選框從切換按鈕派生), 風格只適用於 切換按鈕控件。

支持算法FMP樣式

使用Silverlight 3開始,它是 可能建立基於 現有樣式新的樣式。您可以使用BasedOn屬性執行此操作 。這 減少代碼的重複和 使管理資源更容易。 每種款式只支持一種BasedOn 款式。有關更多信息,請參閱 BasedOn屬性。

0

將相關樣式放在App.xaml文件中。應用程序對象的Resources屬性可以在整個應用程序中使用樣式和其他資源。

+0

是的,我可以通過設置樣式: radioBtn.Style =(Style)(Application.Current.Resources [「rdbFolder」]); 但我必須重複所有頁面中的過程來設置樣式。 而是我希望當我說在第一頁上設置radioBtn的風格時,它應該應用於所有頁面中的所有單選按鈕。 – Simsons 2010-05-14 07:23:37

2

只需在App.xaml中放棄x:Style的關鍵部分。這是爲Silverlight 4的一個新功能

相關問題