x:Shared 屬性

當設定為 false 時,會修改 WPF 資源擷取行為,讓屬性化資源的要求為每個要求建立新的實例,而不是為所有要求共用相同的實例。

XAML Attribute Usage

<ResourceDictionary>
  <object x:Shared="false".../>
</ResourceDictionary>

備註

x:Shared 會對應至 XAML 語言 XAML 命名空間,並由 .NET XAML 服務及其 XAML 讀取器辨識為有效的 XAML 語言專案。 不過,的已陳述功能 x:Shared 僅適用于 WPF 應用程式和 WPF XAML 剖析器。 在 WPF 中, x:Shared 只有在屬性套用至 WPF ResourceDictionary 中存在的 物件時,才有用。 其他使用方式不會擲回剖析例外狀況或其他錯誤,但它們沒有作用。

在 XAML 語言規格中未指定 的意義 x:Shared 。 其他 XAML 實作,例如建置在 .NET XAML 服務上的 XAML 實作,不一定提供資源分享支援。 這類 XAML 實作可以在也使用 x:Shared 值的支援架構中提供類似的行為。

在 WPF 中,資源的預設 x:Shared 條件是 true 。 此條件表示任何指定的資源要求一律會傳回相同的實例。

修改透過資源 API 傳回的物件,例如 FindResource ,或修改 直接在 內 ResourceDictionary 的物件會變更原始資源。 如果該資源的參考是動態資源參考,該資源的取用者會取得變更的資源。

如果資源的參考是靜態資源參考,則 XAML 處理時間之後對資源的變更無關。 如需靜態與動態資源參考的詳細資訊,請參閱 XAML 資源概觀(WPF .NET)。

明確指定 x:Shared="true" 很少完成,因為這是預設值。 WPF 物件模型中沒有對等 x:Shared 的直接程式碼;它只能在 XAML 使用方式中指定,而且只有在使用 .NET XAML 服務及其 XAML 讀取器處理時,才能由預設 WPF 行為或在載入路徑上的中繼 XAML 節點資料流程中處理。

的案例 x:Shared="false" 是,如果您將 或 FrameworkContentElement 衍生類別定義為 FrameworkElement 資源,然後將專案資源引入 con帳篷模式l。 x:Shared="false"可讓專案資源在相同的集合中多次導入 (例如 , 。 UIElementCollection 如果沒有 x:Shared="false" ,則無效,因為集合會強制執行其內容的唯一性。 不過,行為 x:Shared="false" 會建立另一個相同的資源實例,而不是傳回相同的實例。

的另一 Freezable 個案例 x:Shared="false" 是,如果您使用資源作為動畫值,但想要根據每個動畫修改資源。

的字串處理 false 不區分大小寫。

在 WPF 中, x:Shared 只有在下列情況下才有效:

另請參閱