Wie beziehe ich mich in WPF auf eine statische Ressource, die in einer anderen XAML -Datei definiert ist?

StackOverflow https://stackoverflow.com/questions/3631331

  •  26-09-2019
  •  | 
  •  

Frage

Wie beziehe ich mich in WPF auf eine statische Ressource, die in einer anderen XAML -Datei definiert ist? Es ist im selben Projekt.

War es hilfreich?

Lösung

Die andere XAML -Datei muss ein Ressourcenwörterbuch sein. Sie fusionieren sie mit der Eigenschaft für mergedDictionaries des aktuellen Ressourcenwesens in die aktuelle Datei. Sehen Zusammenführte Ressourcenwörterbücher auf msdn. Ihr Beispiel:

<Page.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="myresourcedictionary.xaml"/>
      <ResourceDictionary Source="myresourcedictionary2.xaml"/>
    </ResourceDictionary.MergedDictionaries>
  </ResourceDictionary>
</Page.Resources>

In diesem Seitenobjekt können Sie auf statische Ressourcen verweisen, die in definierter definiert werden myresourcedictionary.xaml oder in myresourcedictionary2.xaml.

Andere Tipps

"Andere XAML -Datei" könnte ein paar verschiedene Dinge bedeuten:

  • App.xaml: Ressourcen werden automatisch im Ressourcenbaum von allem enthalten, was geöffnet ist, sodass Sie nichts mehr tun müssen.
  • Fenster oder Seite .xaml: Ressourcen können von jedem Kind einer Instanz des Objekts wie einer USercontrol zugegriffen werden, die in einem Fenster verwendet wird.
  • Resourcedictionary: muss explizit in den Ressourcenbaum irgendwo darüber, wo er verwendet wird, explizit zusammengefasst werden. Dies kann app.xaml, windowxx.xaml oder ein Element auf niedrigerer Ebene sein. Verwenden Sie dazu Ressourcenictionary.MergedDictionaries.

Es gibt auch viele alternative Möglichkeiten, den Pfad anzugeben, aber dies ist das einfachste:

<Window>
    <Window.Resources>
      <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
          <ResourceDictionary Source="Resources/MyResourceDict.xaml" />
        </ResourceDictionary.MergedDictionaries>
      </ResourceDictionary>
    </Window.Resources>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top