2 Stimmen

Alias oder Verweis im ResourceDictionary

Ich suche nach einer Möglichkeit, einen Gegenstand in einer ResourceDictionary mehrere Tasten. Gibt es eine Möglichkeit, dies zu tun?

<DataTemplate x:Key="myTemplate" ... />
<AliasedResource x:Key="myTemplateViaAlias" Target="myTemplate" OR_Target={StaticResource myTemplate} />

Wenn ich anrufe TryFindResource("myTemplateViaAlias") Ich möchte myTemplate herausnehmen. Ich nehme an, ich könnte eine AliasedResource Klasse und dereferenziere sie im Code, wenn ich sie aus dem Wörterbuch herausnehme, aber ich möchte das lieber nicht tun, wenn es einen eingebauten Weg gibt.

4voto

H.B. Punkte 140726

Sie können Ressourcen durch dynamische Ressourcen leiten (beachten Sie, dass schlechte UI-Designer dies nicht mögen werden)

<Color x:Key="color">Red</Color>
<DynamicResource x:Key="mycolor" ResourceKey="color"/>

<Rectangle Width="100" Height="100">
    <Rectangle.Fill>
        <SolidColorBrush Color="{StaticResource color}"/>
    </Rectangle.Fill>
</Rectangle>
<Rectangle Width="100" Height="100">
    <Rectangle.Fill>
        <SolidColorBrush Color="{StaticResource mycolor}"/>
    </Rectangle.Fill>
</Rectangle>

0voto

Danny Varod Punkte 16437

Mir ist keine Möglichkeit bekannt, dies zu tun.

Wenn Sie jedoch mehrere Vorlagen für mehrere Steuerelemente erstellen möchten, sollten Sie dies tun, gehen Sie möglicherweise den falschen Weg.

Sie können mehrere Ressourcen (Datenvorlagen und dynamische Ressourcen) mit demselben global benannten Schlüssel haben, oder Standardschlüssel (Steuerklassentyp) für Stile, dann eine andere Ressourcenverzeichnisdatei in jedes Steuerelement/Region/Registerkarte/Fenster laden, während der Laufzeit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X