Ressourcen -Element oder UserControl?
-
20-09-2019 - |
Frage
Ich habe etwas XAML, um ein Logo zu zeichnen, und ich möchte dies in verschiedenen anderen XAML-Dateien wiederverwenden (es hat keine Benutzeroberfläche und benötigt keinen Code). Die obere Ebene des Logos XAML ist a Canvas
Artikel.
Um das Logo in anderen XAML -Dateien zu verwenden, definieren Sie dieses Logo am besten als Element in a ResourceDictionary
oder erstellen a UserControl
?
Das scheint mit a einfach zu sein UserControl
, Allerdings möchte ich meine XAML -Dateien mit XAMLreader einladen, damit ich es vorziehen würde, Ressourcen zu verwenden, damit diese innerhalb des XAML angegeben werden können. Es scheint möglich, Artikel wie a zu speichern Canvas
in einem ResourceDictionary
Aber ich bin mir nicht sicher, wie ich sie verweisen soll.
Zum Beispiel kann ich mein Logo als definieren ResourceDictionary
Element wie folgt:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
</ResourceDictionary>
Aber wie kann ich das verwenden? Logo
In meinen anderen XAML -Dateien habe ich vielleicht die falsche Vorstellung von Ressourcen?
Lösung
Ich fand, dass die Lösung ein Visualbrush ist. Ich kann dies im Ressourcenschutz wie folgt definieren:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush x:Key="Logo">
<VisualBrush.Visual>
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
Verwenden Sie dann diesen Visualbrush, wo dies erforderlich ist.
Andere Tipps
Wenn Sie dafür ein Ressourcenwörterbuch erstellen möchten, würden Sie in der Regel einen Stil erstellen. Sie können dann eine Steuerung fallen lassen und mit Ihrer Ressource in jeder anderen XAML -Datei, die Sie gewünscht haben, stylen.
Ein UserControl wäre jedoch möglicherweise eine einfachere Option, da es sich um ein einfaches, wiederverwendbares Element handelt, das Sie überall einleiten könnten.