Question

J'ai du XAML pour dessiner un logo et je veux réutiliser cela dans divers autres fichiers XAML (il n'a pas d'interface utilisateur et ne nécessite aucun code). Le niveau supérieur du logo xaml est un Canvas Objet.

Pour utiliser le logo dans d'autres fichiers XAML, il est préférable de définir ce logo comme un élément dans un ResourceDictionary ou créer un UserControl?

Cela semble facile avec un UserControl, Cependant, je veux charger mes fichiers xaml avec xamlreader afin que je préfère utiliser des ressources afin que celles-ci puissent être spécifiées dans le XAML. Il semble possible de stocker des articles tels que Canvas dans un ResourceDictionary Mais je ne sais pas comment les faire référence.

Par exemple, je peux définir mon logo comme un ResourceDictionary élément comme suit:

<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>

Mais comment puis-je utiliser ça Logo Dans mes autres fichiers XAML - peut-être que j'ai la mauvaise idée des ressources?

Était-ce utile?

La solution

J'ai trouvé que la solution est un brush visuel. Je peux définir cela dans le ressourcementaire comme suit:

<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> 

Ensuite, utilisez simplement ce Brush si nécessaire.

Autres conseils

En règle générale, si vous voulez faire un dictionnaire de ressources pour cela, vous fabriqueriez un style. Vous pouvez ensuite supprimer un contrôle et le coiffer avec votre ressource, dans tout autre fichier XAML que vous avez souhaité.

Cependant, une comténutrol serait potentiellement une option plus facile, car ce serait un élément simple et réutilisable que vous pourriez déposer n'importe où.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top