FrameworkElement.Style 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public:
property Style ^ Style { Style ^ get(); void set(Style ^ value); };
Style Style();
void Style(Style value);
public Style Style { get; set; }
var style = frameworkElement.style;
frameworkElement.style = style;
Public Property Style As Style
<frameworkElement Style="{StaticResource styleResourceKey}"/>
屬性值
如果存在,則為物件的套用樣式;否則為 null
。 預設建構 FrameworkElement 的預設值為 null
。
備註
Style
直接設定屬性不是設定 UI 元素外觀的最常見方式。 相反地,您會透過下列其中一種技術來影響 UI 元素的外觀:
- 您通常會在 XAML 中將 UI 元素的個別 UI 屬性設定為屬性。
FrameworkElement.Style
僅適用于目前的元素,而 來自FrameworkElement.Style
的任何值都會由本機屬性值覆寫,因此設定本機值會更直接且更容易預測。 如需 Style 值和本機屬性值關聯方式的詳細資訊,請參閱 相依性屬性概觀。 - 控制項作者通常會撰寫可範本化的控制項,但也隨附預設範本。 您的應用程式可以使用 控制項並變更其外觀,方法是提供新的 ControlTemplate,這是資源中所定義 Style 的一部分。 此樣式通常會使用 隱含樣式 功能來套用,而不是藉由設定
Style
。 如需詳細資訊,請參閱 設定控制項的樣式。 - 控制項作者也會公開屬性,這些屬性會參考可以套用至該元件之樣式或值的控制群組件,因此您不需要完全重新範本控制項。 您在這裡設定更特定的屬性,而不是
FrameworkElement.Style
。 - 視覺狀態模型通常會在執行時間重設控制項樣式,以回應以視覺化方式向使用者顯示狀態的變更。 例如,控制項範本通常具有「焦點」狀態,可將視覺焦點指標新增至控制面板,讓鍵盤使用者可以看到 UI 中的哪個元素具有目前的鍵盤焦點。 如需視覺狀態概念的詳細資訊,請參閱 XAML 控制項範本。
您可以變更樣式中已設定的個別屬性值。 例如,即使這個屬性已由樣式設定,您也可以在執行時間設定 Template 屬性。 或者,您可以將 setter 新增至 Setters中的集合。 不過,一旦載入的物件使用該樣式, 樣式 就應該視為密封。 您可以檢查 的 Style
IsSealed值來偵測此狀態。 當載入的物件連接到所顯示 UI 頁面的物件樹狀結構所參考時,就會將樣式視為正在使用中。
Style
當使用該樣式的物件引發Loaded事件時,也可以將其視為 Setters
密封。 嘗試變更使用中樣式的個別屬性 (,例如集合中的 Setters
屬性) 擲回例外狀況。
衍生自 Control 的類別有一個額外的進入點,對於控制樣式和範本應用程式的作者很有用。
FrameworkElement會定義在 Loaded之前叫用的虛擬回呼OnApplyTemplate。 衍生自 Control
的類別可以覆寫此回呼,以調整範本在使用樣式之前所設定的屬性值。
如果在執行時間查詢, Style
屬性不會傳回來自已套用範本或作用中視覺狀態的樣式。 它只會傳回屬性明確設定的 Style
樣式。 此外,它不會傳回隱含樣式。