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
樣式。 此外,它不會傳回隱含樣式。
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應