Pregunta

Tengo un poco de XAML para dibujar un logotipo y quiero reutilizar esto en varios otros archivos XAML (no tiene UI y no requiere código). El nivel superior del logotipo XAML es un Canvas artículo.

Para usar el logotipo en otros archivos XAML, es mejor definir este logotipo como un elemento en un ResourceDictionary o crear un UserControl?

Esto parece fácil con un UserControl, sin embargo, quiero cargar mis archivos XAML con XamLReader para que prefiera usar recursos para que se puedan especificar dentro del XAML. Parece posible almacenar artículos como un Canvas en un ResourceDictionary Pero no estoy seguro de cómo hacer referencia a ellos.

Por ejemplo, puedo definir mi logotipo como un ResourceDictionary Elemento de la siguiente manera:

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

Pero, ¿cómo puedo usar esto? Logo En mis otros archivos XAML, ¿tal vez tengo la idea equivocada sobre los recursos?

¿Fue útil?

Solución

Encontré que la solución es una visión visual. Puedo definir esto en el cictición de recursos de la siguiente manera:

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

Luego use este visualbrush cuando sea necesario.

Otros consejos

Por lo general, si desea hacer un diccionario de recursos para esto, sería un estilo. Luego puede soltar un control y diseñarlo con su recurso, en cualquier otro archivo XAML que desee.

Sin embargo, un Usercontrol sería una opción más fácil, ya que sería un elemento simple y reutilizable que podría llevar a cualquier lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top