В моем рабочем приложении WPF4 Desktop есть большой блок с меню боковой панели, который повторяется в каждом окне и занимает около 70 строк XAML. Чтобы улучшить повторное использование кода, я хотел бы разбить файл XAML в двух файлах:
- XAML файл, содержащий код для меню боковой панели (≈70 строк)
- Базовый XAML файл, содержащий "include/reference" для XAML файла с кодом меню боковой панели
Как я понял, есть два способа реализовать мою проблему:
- Использовать ResourceDictionary
- Использовать UserControl/CustomControl
Мои вопросы:
-
В чем разница между ResourceDictionary и UserControl? Не могли бы вы привести примеры, где я должен использовать UserControl и где ResourceDictionary?
-
Не могли бы вы привести полный пример кода, как включить/импортировать содержимое одного XAML файла в другой?
P.S. Вот пример кода, который я хочу экспортировать в отдельный файл XAML:
<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>