Разделить один большой XAML на количество файлов Sub-XAML

В моем настольном приложении WPF4 есть большой блок с меню боковой панели, которое повторяется в каждом окне и занимает около 70 строк XAML. Чтобы улучшить повторное использование кода, Я хочу разделить XAML-файл на два файла:

  1. XAML-файл, содержащий код для меню боковой панели (≈70 строк)
  2. Базовый XAML-файл, содержащий «включить / ссылку» на XAML-файл с кодом бокового меню

Как я понял, есть два способа реализовать мою проблему:

  1. Использовать ResourceDictionary
  2. Использовать UserControl / CustomControl

Мои вопросы:

  1. Что в чем разница между ResourceDictionary и UserControl ? Не могли бы вы привести примеры, в которых я должен использовать UserControl и где ResourceDictionary ?

  2. Не могли бы вы привести пример полного кода, как включать / импортировать содержимое одного XAML-файла в другой ?

PS Вот пример кода, который я хочу экспортировать в отдельный 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>
20
задан Mike B. 21 February 2019 в 07:11
поделиться