FrameworkElement.Style 屬性

定義

取得或設定配置和轉譯期間針對這個物件套用的實例 Style

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中的集合。 不過,一旦載入的物件使用該樣式, 樣式 就應該視為密封。 您可以檢查 的 StyleIsSealed值來偵測此狀態。 當載入的物件連接到所顯示 UI 頁面的物件樹狀結構所參考時,就會將樣式視為正在使用中。 Style當使用該樣式的物件引發Loaded事件時,也可以將其視為 Setters 密封。 嘗試變更使用中樣式的個別屬性 (,例如集合中的 Setters 屬性) 擲回例外狀況。

衍生自 Control 的類別有一個額外的進入點,對於控制樣式和範本應用程式的作者很有用。 FrameworkElement會定義在 Loaded之前叫用的虛擬回呼OnApplyTemplate。 衍生自 Control 的類別可以覆寫此回呼,以調整範本在使用樣式之前所設定的屬性值。

如果在執行時間查詢, Style 屬性不會傳回來自已套用範本或作用中視覺狀態的樣式。 它只會傳回屬性明確設定的 Style 樣式。 此外,它不會傳回隱含樣式。

適用於