Frage

Ich habe einen Pinsel, der Teil eines ist ResourceDictionary das ist zusammengeführt zu Application.Resources.

Aus irgendeinem Grund wird es jedoch nicht zur Laufzeit gelöst, wenn ein Stil auf eine der Kontrollen angewendet wird. Wenn ich jedoch Anwendung.Current.FindResource ("Pinselname") aus dem unmittelbaren Fenster zum Zeitpunkt der Ausnahme aufrufe, wird die Ressource gefunden.

Vermisse ich etwas? Soll WPF nicht versuchen, nach der Ressource in den Ressourcen der App zu suchen?

AKTUALISIERENDie Anwendung ist ziemlich groß, daher kann ich nicht alle tatsächlichen Code veröffentlichen, aber hier ist die Art und Weise, wie die Ressourcen zusammengeführt und verwendet werden:

Brushes.xaml

<ResourceDictionary ...>
  <SolidColorBrush x:Key="BrushName" Color="#12345678" />
</ResourceDictionary>

SomeStyles.xaml

<ResourceDictionary ...>
  <Style x:Key="SomeStyle">
    <Setter Property="SomeProperty" Value="{StaticResource BrushName}" />
  </Style>
</ResourceDictionary>

App.xaml

<Application ...>
  <Application.Resources>

    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Brushes.xaml" />
        <ResourceDictionary Source="SomeStyles.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>


  </Application.Resources>
</Application ...>

Und dann kann einige Kontrolle den Stil mit der Ressource wie folgt verwenden:

...
Style={StaticResource SomeStyle}
...

AKTUALISIEREN

Es scheint Menüs und Kontrollen zu passieren, die im Code erstellt werden. Kann es mit diesen Steuerelementen und Menüs in Verbindung gebracht werden, die nicht Teile des visuellen Baums eines Fensters sind?

War es hilfreich?

Lösung

Ihr somestyle.xaml Dictionary muss direkt verweisen.xaml Dictionary direkt:

<ResourceDictionary ...>
  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Brushes.xaml" />
  </ResourceDictionary.MergedDictionaries>
  <Style x:Key="SomeStyle">
    <Setter Property="SomeProperty" Value="{StaticResource BrushName}" />
  </Style>
</ResourceDictionary>

Staticresources durchsuchen nur den Baum des aktuellen Wörterbuchs, sodass Sie alle Ressourcen übergeben müssen, auf die er sich verweisen muss.

Andere Tipps

Gehen Sie in die zentrale Verwaltung ein -> Dienstanwendung verwalten -> Benutzerprofildienstanwendung.

Unter "My Site-Settings" Sie haben "Setup My Site", hier können Sie den Wert für "My Site-Host-Standort" aktualisieren, um an Ihr neues Setup anzupassen.Stellen Sie sicher, dass Sie unten auf "OK" klicken.

Nicht sicher, ob dies unmittelbar durchgeht oder wenn einige Timer-Jobs vorhanden sind, die ausgeführt werden müssen, bevor die Änderungen in der GUI für Ihre Benutzer sichtbar sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top