¿El elemento de cictición de recursos o la usercontrol?
-
20-09-2019 - |
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?
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.