Elemento di risorse o usercontrol?
-
20-09-2019 - |
Domanda
Ho un po 'di XAML per disegnare un logo e voglio riutilizzarlo in vari altri file XAML (non ha interfaccia utente e non richiede codice). Il livello superiore del logo XAML è un Canvas
elemento.
Per utilizzare il logo in altri file XAML è meglio definire questo logo come elemento in a ResourceDictionary
o creare un UserControl
?
Questo sembra facile con a UserControl
, tuttavia, voglio caricare i miei file XAML con XamlReader in modo da preferire utilizzare le risorse in modo che queste possano essere specificate all'interno di XAML. Sembra possibile archiviare articoli come a Canvas
in un ResourceDictionary
Ma non sono sicuro di come fare riferimento a loro.
Ad esempio, posso definire il mio logo come a ResourceDictionary
elemento come segue:
<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>
Ma come posso usarlo Logo
Nei miei altri file XAML - forse ho avuto l'idea sbagliata sulle risorse?
Soluzione
Ho scoperto che la soluzione è un visualbrush. Posso definirlo nel risorse come segue:
<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>
Quindi usa questo visualbrush ove necessario.
Altri suggerimenti
In genere, se vuoi creare un dizionario delle risorse per questo, faresti uno stile. Potresti quindi abbandonare un controllo e modellarlo con la tua risorsa, in qualsiasi altro file XAML che desideravi.
Tuttavia, un UserControl sarebbe potenzialmente un'opzione più semplice, poiché sarebbe un elemento semplice e riutilizzabile in cui si potrebbe cadere ovunque.