XAML-Ressourcen

 

Veröffentlicht: Juni 2016

Eine Ressource ist ein Objekt, das an unterschiedlichen Stellen in Ihrer Anwendung wiederverwendet werden kann. Ressourcen gehören beispielsweise Pinsel und Stile. In dieser Übersicht wird beschrieben, wie Ressourcen in XAML. Sie können auch Zugriff auf Ressourcen mithilfe von Code oder im Wechsel zwischen Code und Extensible Application Markup Language (XAML). Weitere Informationen finden Sie unter Ressourcen und Code.

System_CAPS_ICON_note.jpg Hinweis

Die Ressourcendateien, die in diesem Thema beschriebenen unterscheiden die Ressourcendateien in beschriebenen WPF-Anwendungsressource, Inhalt und Datendateien und unterscheidet sich die eingebetteten oder verknüpften Ressourcen, die in beschriebenen Verwalten von Ressourcen (.NET).

Entity with relative path '../Token/autoOutline_md.md' can not be found, for source topic '{"project_id":"3fedad16-eaf1-41a6-8f96-0c1949c68f32","entity_id":"91580b89-a0a8-4889-aecb-fddf8e63175f","entity_type":"Article","locale":"de-DE"}'.

Das folgende Beispiel definiert eine SolidColorBrush als Ressource für das Stammelement einer Seite. Anschließend verweist auf die Ressource und zum Festlegen der Eigenschaften von mehreren untergeordneten Elementen, einschließlich verwendet ein Ellipse, TextBlock, und ein Schaltfläche.

<Page Name="root"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
  <Page.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
    <Style TargetType="Border" x:Key="PageBackground">
      <Setter Property="Background" Value="Blue"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="TitleText">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="DockPanel.Dock" Value="Top"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="#4E87D4"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
      <Setter Property="Margin" Value="0,40,10,10"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="Label">
      <Setter Property="DockPanel.Dock" Value="Right"/>
      <Setter Property="FontSize" Value="8"/>
      <Setter Property="Foreground" Value="{StaticResource MyBrush}"/>
      <Setter Property="FontFamily" Value="Arial"/>
      <Setter Property="FontWeight" Value="Bold"/>
      <Setter Property="Margin" Value="0,3,10,0"/>
    </Style>
  </Page.Resources>
  <StackPanel>
    <Border Style="{StaticResource PageBackground}">
      <DockPanel>
        <TextBlock Style="{StaticResource TitleText}">Title</TextBlock>
        <TextBlock Style="{StaticResource Label}">Label</TextBlock>
        <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Left" FontSize="36" Foreground="{StaticResource MyBrush}" Text="Text" Margin="20" />
        <Button DockPanel.Dock="Top" HorizontalAlignment="Left" Height="30" Background="{StaticResource MyBrush}" Margin="40">Button</Button>
        <Ellipse DockPanel.Dock="Top" HorizontalAlignment="Left" Width="100" Height="100" Fill="{StaticResource MyBrush}" Margin="40" />
      </DockPanel>
    </Border>
  </StackPanel>
</Page>


Jedes Element auf Frameworkebene ( FrameworkElement oder "FrameworkContentElement") hat eine Ressourcen -Eigenschaft, die die Eigenschaft ist die Ressourcen enthält (als ein ResourceDictionary), die eine Ressource definiert. Sie können Ressourcen für jedes Element definieren. Ressourcen werden jedoch am häufigsten definiert, auf das Root-Element, das Seite im Beispiel.

Jede Ressource in einem Ressourcenverzeichnis muss einen eindeutigen Schlüssel verfügen. Wenn Sie Ressourcen in Markup definieren, weisen Sie den eindeutigen Schlüssel durch die X: Key-Direktive. In der Regel ist der Schlüssel eine Zeichenfolge. Allerdings können Sie auch diese für andere Objekttypen festlegen mithilfe der entsprechenden Markuperweiterungen. Nichtzeichenfolgeschlüssel für Ressourcen werden verwendet, indem bestimmte Funktionsbereiche in Entity with relative path '../Token/TLA2%23tla_winclient_md.md' can not be found, for source topic '{"project_id":"3fedad16-eaf1-41a6-8f96-0c1949c68f32","entity_id":"91580b89-a0a8-4889-aecb-fddf8e63175f","entity_type":"Article","locale":"de-DE"}'., insbesondere für Formatvorlagen, Ressourcen und Daten formatieren.

Nachdem Sie eine Ressource definiert haben, können Sie die Ressource für einen Eigenschaftswert verwendet werden, mithilfe einer Ressource Markuperweiterungssyntax, die den Schlüsselnamen, z. B. angibt verweisen:

        <Button Background="{StaticResource MyBrush}"/>
        <Ellipse Fill="{StaticResource MyBrush}"/>

Im vorherigen Beispiel bei der XAML Ladeprogramm verarbeitet den Wert {StaticResource MyBrush} für die Hintergrund Eigenschaft auf Schaltfläche, Suchlogik der Ressource zunächst das Ressourcenwörterbuch auf überprüft die Schaltfläche Element. Wenn Schaltfläche keine Definition der Ressourcenschlüssel MyBrush (nicht der Fall, der ressourcenauflistung leer ist), die Suche als Nächstes überprüft das übergeordnete Element des Schaltfläche, also Seite. Folglich beim Definieren einer Ressourcenpools auf der Seite Root-Element, das alle Elemente in der logischen Struktur der Seite darauf zugreifen können, und Sie können die gleiche Ressource wiederverwenden, für den Wert einer Eigenschaft festlegen, akzeptiert der Typ , das die Ressource darstellt. Im vorherigen Beispiel identisch MyBrush Ressourcensätze zwei verschiedene Eigenschaften: die Hintergrund von einer Schaltfläche, und die füllen von eine Rechteck.

Eine Ressource kann entweder eine statische Ressource oder eine dynamische Ressource verwiesen werden. Dies erfolgt entweder über die StaticResource-Markuperweiterung oder DynamicResource-Markuperweiterung. Eine Markuperweiterung ist ein Feature von XAML bei dem Sie einen Objektverweis angeben können, indem die Markuperweiterung die Attributzeichenfolge verarbeitet und das Objekt zum Zurückgeben einer XAML Ladeprogramm. Weitere Informationen zum Verhalten von Markuperweiterungen finden Sie unter Markuperweiterungen und WPF-XAML.

Wenn Sie eine Markuperweiterung verwenden, geben Sie in der Regel einen oder mehrere Parameter in Form einer Zeichenfolge, die von dieser speziellen Markuperweiterung verarbeitet werden und nicht im Kontext der festzulegenden Eigenschaft ausgewertet wird. Die StaticResource-Markuperweiterung verarbeitet einen Schlüssel, indem der Wert für diesen Schlüssel in allen verfügbaren Ressourcenwörterbüchern gesucht. Dies geschieht beim Laden, die die Zeit wird bei der Ladeprozess muss den Wert der Eigenschaft zuweisen, der Verweis auf die statische Ressource akzeptiert. Die DynamicResource-Markuperweiterung stattdessen Prozesse ein Schlüssel durch Erstellen eines Ausdrucks, nicht die Anwendung tatsächlich ausgeführt wird, bis zu diesem Zeitpunkt der Ausdruck wird ausgewertet, und stellt einen Wert bereit.

Wenn Sie eine Ressource verweisen, können folgende Aspekte beeinflussen, ob Sie einen statischen Ressourcenverweis oder einen dynamischen Ressourcenverweis verwenden:

  • Der allgemeine Entwurf dargestellt, wie Sie die Ressourcen für Ihre Anwendung erstellen (pro Seite, in der Anwendung, in loose XAML, in eine einzige Ressourcenassembly).

  • Die Funktionalität der Anwendung: Ressourcen in Echtzeit-Teil der Anforderungen Ihrer Anwendung aktualisiert wird?

  • Das jeweilige Suchverhalten dieses Ressourcentyps Verweis einbezogen.

  • Die betreffende Eigenschaft oder Ressourcentyp und das systemeigene Verhalten dieser Typen.

Statische Ressourcen

Verweise auf statische Ressourcen arbeiten am besten für die folgenden Situationen:

  • Der Anwendungsentwurf konzentriert sich vor allem der Ressourcen in Seiten oder auf Anwendungsebene Wörterbücher. Statische Ressourcenverweise nicht erneut bewertet werden basierend auf der Common Language Runtime-Verhalten wie das erneute Laden einer Seite, und daher werden einige Leistungsvorteil, viele dynamische Verweise zu vermeiden, wenn sie nicht pro Entwurfs Ressource und Anwendung erforderlich sind.

  • Sie legen den Wert einer Eigenschaft, die nicht in einem DependencyObject oder Freezable.

  • Erstellen Sie ein Ressourcenverzeichnis, die in eine DLL kompiliert und als Teil der Anwendung verpackt oder zwischen Anwendungen freigegeben werden.

  • Sie erstellen ein Design für ein benutzerdefiniertes Steuerelement und definieren Ressourcen, die in den Designs verwendet werden. Für diesen Fall Sie in der Regel nicht möchten, dass das Suchverhalten des dynamischen Verweis an, stattdessen die statische Ressource Verweis Verhalten, damit die Suche vorhersagbare und das Design des eigenständig ist. Bei einem dynamischen Ressourcenverweis Verweis selbst ein Verweis innerhalb eines Designs gelassen wird erst zur Laufzeit ausgewertet, und besteht die Möglichkeit, dass das Design angewendet wird, ein lokales Element einen Schlüssel, den das Design verweisen möchte definieren und das lokale Element greift auf das Design in der Suche vorherige wird. In diesem Fall wird das Design nicht wie erwartet Verhalten.

  • Verwenden Sie Ressourcen, um die große Anzahl von Abhängigkeitseigenschaften festzulegen. Abhängigkeitseigenschaften verfügen über effektive Wert Zwischenspeichern von Eigenschaftenwerten aktiviert, sodass, wenn Sie einen Wert für eine Abhängigkeitseigenschaft bereitstellen, die werden können, zur Ladezeit ausgewertet die Abhängigkeitseigenschaft nicht für einen reevaluated Ausdruck überprüfen muss und kann den letzten effektiven Wert zurück. Diese Technik kann einen Leistungsvorteil bieten.

  • Sollen die zugrunde liegende Ressource für alle Consumer ändern oder separate Instanzen mit Schreibzugriff für jeden einzelnen Consumer mit beibehalten möchten die X: Shared-Attribut.

Suchverhalten von statischen Ressourcen

  1. Der Suchprozess prüft den angeforderten Schlüssel in dem Ressourcenwörterbuch, definiert durch das Element, das die Eigenschaft festlegt.

  2. Der Suchprozess durchläuft dann die logische Struktur aufwärts zum übergeordneten Element und seinem Ressourcenwörterbuch. Dies wird fortgesetzt, bis das Stammelement erreicht ist.

  3. Als Nächstes werden die Anwendungsressourcen geprüft. Anwendungsressourcen sind diese Ressourcen in dem Ressourcenwörterbuch, das vom definiert ist die Anwendung -Objekt für die Entity with relative path '../Token/TLA2%23tla_winclient_md.md' can not be found, for source topic '{"project_id":"3fedad16-eaf1-41a6-8f96-0c1949c68f32","entity_id":"91580b89-a0a8-4889-aecb-fddf8e63175f","entity_type":"Article","locale":"de-DE"}'. Anwendung.

Statische Ressourcenverweise aus einem Ressourcenwörterbuch müssen auf eine Ressource verweisen, die bereits vor dem Ressourcenverweis lexikalisch definiert wurde. Vorwärtsverweise können nicht von einem statischen Ressourcenverweis aufgelöst werden. Aus diesem Grund Wenn Sie statische Ressourcenverweise verwenden, müssen Sie Struktur des Ressourcenwörterbuchs so entwerfen, dass Ressourcen, die zur Verwendung durch eine Ressource an oder am Anfang der jeweiligen Ressourcenwörterbuchs definiert werden.

Statische Ressourcensuche kann auf Designs oder die Systemressourcen ausgedehnt, aber dies wird unterstützt, da die XAML Ladeprogramm verzögert die Anforderung. Die Verzögerung ist erforderlich, damit das Common Language Runtime-Design zu dem Zeitpunkt, den Laden der Seite ordnungsgemäß für die Anwendung gilt. Jedoch Ressourcenverweise statische auf Schlüssel nur vorhanden sein, Designs oder als System sind nicht empfehlenswert. Dies ist, da solche Verweise nicht neu ausgewertet werden, wenn der Benutzer in Echtzeit das Design geändert wird. Ein dynamischen Ressourcenverweis ist zuverlässiger, wenn Sie Designs oder Systemressourcen anfordern. Die Ausnahme ist, wenn ein Designelement selbst eine andere Ressource anfordert. Diese Verweise sollten den oben genannten Gründen statische Ressourcenverweise sein.

Variiert in das Ausnahmeverhalten bei ein statischen Ressourcenverweis nicht gefunden wird. Wenn die Ressource zurückgestellt wurde, tritt die Ausnahme zur Laufzeit. Wenn die Ressource nicht zurückgestellt wurde, tritt die Ausnahme beim Laden.

Dynamische Ressourcen

Dynamische Ressourcen sind am besten für die folgenden Situationen:

  • Der Wert der Ressource hängt von Bedingungen, die nicht erst zur Laufzeit bekannt sind. Dies schließt Systemressourcen oder Ressourcen, die andernfalls vom Benutzer festgelegt sind. Sie können z. B. Setter-Werte, die auf Systemeigenschaften verweisen erstellen, wie von verfügbar gemacht SystemColors, von SystemFonts, oder von SystemParameters. Diese Werte sind wirklich dynamischen, da sie letztlich von der Common Language Runtime-Umgebung des Benutzers und Betriebssystem stammen. Außerdem müssen Sie möglicherweise auf Anwendungsebene Designs, die sich ändern können, in denen Zugriff auf Seitenebene die Änderung ebenfalls erfassen muss.

  • Sie erstellen oder verweisen auf Designstile für ein benutzerdefiniertes Steuerelement.

  • Sie beabsichtigen, passen Sie den Inhalt einer ResourceDictionary während der Anwendungslebensdauer einer.

  • Sie haben eine komplizierte Ressource-Struktur, die Abhängigkeiten, aufweist, kann ein Vorwärtsverweis erforderlich sein. Statische Ressourcenverweise unterstützen keine Vorwärtsverweise jedoch dynamische Ressourcenverweise unterstützen, da die Ressource nicht erst zur Laufzeit ausgewertet werden muss, und Vorwärtsverweise sind daher nicht relevante Konzept.

  • Sie verweisen auf eine Ressource, die aus der Perspektive eines kompilieren oder Workingsets besonders groß ist, und die Ressource möglicherweise nicht sofort beim Laden der Seite verwendet werden. Statische Ressourcenverweise werden immer aus XAML beim Laden der Seite, jedoch ein dynamischen Ressourcenverweis wird nicht geladen, bis sie tatsächlich verwendet werden.

  • Sie erstellen eine Formatvorlage Setter-Werte von anderen Werten kommen können, die durch Designs oder anderer benutzereinstellungen beeinflusst werden.

  • Sie wenden Ressourcen auf Elemente, die in der logischen Struktur während der Lebensdauer der Anwendung erneut übergeordnet sein kann. Ändern des übergeordneten Elements möglicherweise auch Suche Ressourcenbereichs ändert, was Sie ggf. die Ressource für einen neuen übergeordneten Element Element erneut ausgewertet werden basierend auf den neuen Bereich immer einen dynamischen Ressourcenverweis.

Suchverhalten von dynamischen Ressourcen

Verhalten bei der Ressourcensuche für einen dynamischen Ressourcenverweis entspricht dem Suchverhalten im Code, wenn Sie aufrufen FindResource oder SetResourceReference.

  1. Der Suchprozess prüft den angeforderten Schlüssel in dem Ressourcenwörterbuch, definiert durch das Element, das die Eigenschaft festlegt.

  2. Der Suchprozess durchläuft dann die logische Struktur aufwärts zum übergeordneten Element und seinem Ressourcenwörterbuch. Dies wird fortgesetzt, bis das Stammelement erreicht ist.

  3. Als Nächstes werden die Anwendungsressourcen geprüft. Anwendungsressourcen sind diese Ressourcen in dem Ressourcenwörterbuch, das vom definiert ist die Anwendung -Objekt für die Entity with relative path '../Token/TLA2%23tla_winclient_md.md' can not be found, for source topic '{"project_id":"3fedad16-eaf1-41a6-8f96-0c1949c68f32","entity_id":"91580b89-a0a8-4889-aecb-fddf8e63175f","entity_type":"Article","locale":"de-DE"}'. Anwendung.

  4. Design-Ressourcenverzeichnis wird für das aktuell aktive Design überprüft. Wenn das Design zur Laufzeit ändert, wird der Wert neu ausgewertet.

  5. Ressourcen werden überprüft.

Ausnahmeverhalten (sofern vorhanden) variiert:

  • Wenn eine Ressource von angefordert wurde eine FindResource aufrufen und nicht gefunden wurde, wird eine Ausnahme ausgelöst.

  • Wenn eine Ressource, durch angefordert wurde eine TryFindResource aufrufen und nicht gefunden wurde, wird keine Ausnahme ausgelöst, aber der zurückgegebene Wert ist null. Wenn die Eigenschaft akzeptiert keine null, ist es dennoch möglich, dass eine tiefere Ausnahme ausgelöst wird (Dies hängt von der jeweiligen Eigenschaft festgelegt wird).

  • Wenn eine Ressource von einem dynamischen Ressourcenverweis in angefordert wurde XAML, und nicht gefunden wurde, und klicken Sie dann das Verhalten hängt von der allgemeinen Eigenschaftensystem, aber das allgemeine Verhalten ist, als ob keine Eigenschaft Einstellung auf der Ebene aufgetreten ist, in dem die Ressource vorhanden ist. Z. B. Wenn Sie versuchen, auf den Hintergrund festlegen einer ein einzelnes Schaltflächenelement mit einer Ressource, die nicht ausgewertet werden konnte, klicken Sie dann kein Wert festgelegt, Ergebnisse, aber der tatsächliche Wert kommen immer noch von anderen Teilnehmern in der Priorität von System- und Wert. Beispielsweise kann dem Wert für den weiterhin von einer lokal definierten Schaltflächenstil oder vom Designstil stammen. Für Eigenschaften, die nicht von Designstile definiert werden, kann der tatsächliche Wert nach einer Evaluierung ausgefallene Ressource vom Standardwert in den Metadaten stammen.

Beschränkungen

Dynamische Verweise müssen einige wichtige Einschränkungen. Mindestens eine der folgenden muss erfüllt sein:

Da die-Eigenschaft festgelegt sein muss ein DependencyProperty oder Freezable -Eigenschaft, die meisten Eigenschaft können weiterleiten an Benutzeroberfläche, da die Änderung einer Eigenschaft (der Wert des geänderten dynamische Ressourcen) vom Eigenschaftensystem bestätigt wird. Die meisten Steuerelemente enthalten Logik, die ein anderes Layout eines Steuerelements erzwungen wird, wenn ein DependencyProperty ändert, und diese Eigenschaft Layout auswirken. Allerdings nicht alle Eigenschaften haben eine DynamicResource-Markuperweiterung als Wert garantiert Mehrwert so, dass sie in Echtzeit in der Benutzeroberfläche aktualisieren. Diese Funktionen kann weiterhin variieren, je nach Eigenschaft sowie je nach Typ, der die Eigenschaft oder sogar die logische Struktur Ihrer Anwendung besitzt.

Es wurde bereits angemerkt, dass alle Elemente in einem ResourceDictionary muss über einen Schlüssel verfügen. Jedoch das bedeutet nicht, dass alle Ressourcen, eine explizite benötigen x:Key. Einige Objekttypen unterstützen einen impliziten Schlüssel, wenn als Ressource definiert, wobei der Schlüssel-Wert auf den Wert einer anderen Eigenschaft gebunden ist. Dies wird als impliziter Schlüssel bezeichnet, während ein x:Key -Attribut ist ein expliziter Schlüssel. Sie können jeden impliziten Schlüssel durch Angabe eines expliziten Schlüssels überschreiben.

Ein sehr wichtiges Szenario für Ressourcen stellt das Definieren einer Stil. In der Tat ein Stil wird fast immer als Eintrag in einem Ressourcenwörterbuch definiert, weil Stile grundsätzlich zur Wiederverwendung vorgesehen sind. Weitere Informationen zu Stilen finden Sie unter von Formaten und Vorlagen.

Stile für Steuerelemente können sowohl mit erstellt und mit einem impliziten Schlüssel verwiesen werden. Die Designstile, die die standarddarstellung eines Steuerelements definieren basieren auf diese impliziten Schlüssel. Der implizite Schlüssel aus Sicht der Anforderung, es ist die Typ des Steuerelements selbst. Aus Sicht der Ressource definieren der implizite Schlüssel ist der TargetType des Formats. Daher, wenn Sie Designs für benutzerdefinierte Steuerelemente erstellen, Erstellen von Stilen, die Interaktion mit vorhandenen Designstile, nicht müssen Sie an einer X: Key-Direktive , Stil. Und wenn Sie Designstile verwenden möchten, müssen Sie keines Format angeben. Z. B. die folgenden Formatdefinition funktioniert, obwohl die Stil Ressource scheint nicht über einen Schlüssel verfügen:

    <Style TargetType="Button">
      <Setter Property="Background">
        <Setter.Value>
          <LinearGradientBrush>
            <GradientStop Offset="0.0" Color="AliceBlue"/>
            <GradientStop Offset="1.0" Color="Salmon"/>           
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>  
      <Setter Property="FontSize" Value="18"/>
    </Style>

Dieser Stil verfügt tatsächlich über einen Schlüssel: den impliziten Schlüssel typeof( Schaltfläche). Im Markup können Sie angeben einer TargetType direkt als Typ name (oder optional können Sie {X: Type...} Zurückgeben einer Typ.

Über die Standardmechanismen für Designstile verwendeten Entity with relative path '../Token/TLA2%23tla_winclient_md.md' can not be found, for source topic '{"project_id":"3fedad16-eaf1-41a6-8f96-0c1949c68f32","entity_id":"91580b89-a0a8-4889-aecb-fddf8e63175f","entity_type":"Article","locale":"de-DE"}'., wie die Common Language Runtime-Stil der Stil angewendet wird ein Schaltfläche auf der Seite, obwohl die Schaltfläche selbst versucht nicht, geben Sie die Stil Eigenschaft oder einen bestimmten Ressourcenverweis auf den Stil. Auf der Seite definierte Stil befindet sich weiter oben in der Suchsequenz vor dem Wörterbuch Designstil mithilfe desselben Schlüssels, der dem Wörterbuch Designstil verfügt. Geben Sie einfach <Button>Hello</Button> überall auf der Seite und die Formatvorlagen, die Sie mit definiert TargetType von Button auf diese Schaltfläche angewendet. Wenn Sie möchten, können Sie explizit Schlüssel für den Stil mit demselben Typwert als TargetTypefür Klarheit im Markup, aber optional ist.

Implizite Schlüssel für Stile werden nicht auf ein Steuerelement angewendet, wenn OverridesDefaultStyle ist true (Beachten Sie, dass OverridesDefaultStyle als Teil des systemeigenen Verhaltens für den Steuerelementtyp und nicht explizit für eine Instanz des Steuerelements festgelegt werden kann). Darüber hinaus um implizite Schlüssel für abgeleitete zu unterstützen, das Steuerelement muss außer Kraft setzen DefaultStyleKey (alle vorhandenen Steuerelemente, die als Teil des Entity with relative path '../Token/TLA2%23tla_winclient_md.md' can not be found, for source topic '{"project_id":"3fedad16-eaf1-41a6-8f96-0c1949c68f32","entity_id":"91580b89-a0a8-4889-aecb-fddf8e63175f","entity_type":"Article","locale":"de-DE"}'. dazu). Weitere Informationen über Stile, Designs und Entwurf von Steuerelementen finden Sie unter Richtlinien zum Entwerfen formatierbarer Steuerelemente.

DataTemplate verfügt auch über einen impliziten Schlüssel. Der implizite Schlüssel für eine DataTemplate ist die Datentyp Eigenschaftswert. Datentyp kann auch als Name des Typs angegeben werden, nicht explizit mit {X: Type...} . Weitere Informationen finden Sie unter Übersicht über Datenvorlagen.

ResourceDictionary
Anwendungsressourcen
Ressourcen und Code
Definieren Sie und verweisen auf eine Ressource
Übersicht über die Anwendungsverwaltung
X: Type-Markuperweiterung
StaticResource-Markuperweiterung
DynamicResource-Markuperweiterung

Anzeigen: