En mi aplicación basada en WPF4 Desktop hay un gran bloque con menú en la barra lateral que se repite en cada ventana y toma alrededor de 70 líneas de XAML. Con el fin de mejorar la reutilización de código, me gustaría dividir el archivo XAML en dos archivos:Dividir un XAML grande en cantidad de archivos Sub-XAML
- XAML-archivo que contiene el código para el menú de la barra lateral (≈ 70 líneas) archivo XAML
- Base que contiene «include/referencia »a XAML-archivo con código de menú de la barra lateral
Según entendí, hay dos maneras de implementar mi problema:
- uso ResourceDictionary
- Uso control de usuario/CustomControl
Mis preguntas son:
¿Cuál es la diferencia entre ResourceDictionary y control de usuario? ¿Podría darme ejemplos donde tengo que usar UserControl y donde ResourceDictionary?
¿Podría dar un ejemplo completo de código sobre cómo incluir/importar el contenido de un archivo XAML a otro?
P.S. Aquí está un ejemplo de código que quiero exportar a separada XAML-archivo:
<Border Style="{StaticResource Body_SideBarMenu_Border_Settings}">
<StackPanel Style="{StaticResource Body_SideBarMenu}">
<TextBlock Style="{StaticResource Body_SideBarMenu_Title}"
Text="{x:Static res:Resources.WinApp_SideBarMenu_Title}" />
<TextBlock x:Name="SideBar_WinReports"
Style="{StaticResource Body_SideBarMenu_Item}"
Text="{x:Static res:Resources.DashListMarker}">
<Hyperlink KeyboardNavigation.TabIndex="12"
Style="{StaticResource Body_SideBarMenu_Item_Hyperlink}"
Click="Call_WinReports_Click">
<TextBlock Text="{x:Static res:Resources.WinApp_ModuleName_Reports}" />
</Hyperlink>
</TextBlock>
</StackPanel>
</Border>
Y eso no es solo considerar controles reutilizables. Puede hacer esto con controles que no son reutilizables también. – r3st0r3