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 元素的外觀:

  • 您通常會將 UI 元素的個別 UI 屬性設定為 XAML 中的屬性。 FrameworkElement.Style 僅適用于目前的元素,而且來自 StyleFrameworkElement.Style 的任何值都會由本機屬性值覆寫,因此設定本機值會更直接且更容易預測。 如需 Style 值和本機屬性值關聯方式的詳細資訊,請參閱 相依性屬性概觀
  • 控制項作者通常會撰寫可範本化的控制項,但也隨附預設範本。 您的應用程式可以使用控制項並變更其外觀,方法是提供新的 ControlTemplate,這是資源中所定義 Style 的一部分。 此樣式通常會使用 隱含樣式 功能來套用,而不是藉由設定 Style。 如需詳細資訊,請參閱 設定控制項樣式
  • 控制項作者也會公開屬性,這些屬性會參考可以套用樣式或值的控制項部分,因此您不需要完全重新範本控制項。 在這裡,您要設定更特定的屬性,而不是 FrameworkElement.Style
  • 視覺狀態模型經常會在執行時間重設控制項樣式,以回應以視覺化方式向使用者顯示狀態的變更。 例如,控制項範本通常會有「焦點」狀態,可將視覺焦點指標新增至控制面板,讓鍵盤使用者可以查看 UI 中的哪個元素具有目前的鍵盤焦點。 如需視覺狀態概念的詳細資訊,請參閱 快速入門:控制項範本

您可以變更已在樣式中設定的個別屬性值。 例如,即使這個屬性已由樣式設定,您也可以在執行時間設定 Template 屬性。 或者,您可以將 setter 新增至 Setters中的集合。 不過,當載入的物件使用該樣式時, 應該將 Style 視為密封。 您可以檢查StyleIsSealed值來偵測此狀態。 一旦載入的物件連接到所顯示 UI 頁面的物件樹狀結構,就會將樣式視為使用中。 當使用該樣式的物件引發其 Loaded事件時,也可以將 Style及其Setter視為密封。 嘗試變更使用中樣式的個別屬性 (,例如 Setters 集合中的屬性) 擲回例外狀況。

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

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

適用於