Я не уверен, что то, что вы пытаетесь сделать, возможно с помощью словаря ресурсов.Словарь ресурсов - это именно то, что представляет собой список ресурсов для вашего XAML, так что вы можете определить там стили или шаблоны и т. Д. Затем на них ссылается ваш XAML, использующий ресурс.Я никогда не пытался определять элементы в одном, но я не думаю, что вы можете инициализировать сетку с ним (что, я думаю, вы пытаетесь сделать?).
Редактировать:
Перечитывание исходного сообщения в сочетании с комментарием. Я не думаю, что вам нужны словари ресурсов для этого вообще.То, что вы хотите, это отдельный пользовательский элемент управления.Вы можете найти информацию об этом здесь , но в качестве краткого примера я создал проект WPF и добавил 2 пользовательских элемента управления, 1 из которых содержит список, а другой - кнопку.
Mainwindow.xaml
<Window x:Class="test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:test"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<local:ListUserControl Grid.Column="0" Grid.Row="0"/>
<local:ButtonUserControl Grid.Column="0" Grid.Row="1"/>
</Grid>
</Window>
ListUserControl.xaml
<UserControl x:Class="test.ListUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:test"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" Background="White">
<StackPanel>
<ListBox>
<ListBoxItem>ListBox Item #1</ListBoxItem>
<ListBoxItem>ListBox Item #2</ListBoxItem>
<ListBoxItem>ListBox Item #3</ListBoxItem>
</ListBox>
</StackPanel>
</UserControl>
ButtonUserControl.xaml
<UserControl x:Class="test.ButtonUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:test"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800" Background="DarkRed">
<Grid>
<Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="10,10,10,10" VerticalAlignment="Top" Width="75"/>
</Grid>
</UserControl>
Это обеспечивает разделение между элементами, которых, я думаю, вы пытаетесь достичь.Таким образом, это должно позволить вам составить представление нескольких пользовательских элементов управления, где каждый элемент управления является набором элементов управления (возможно, других пользовательских элементов управления, но это может привести к путанице).Это также может быть достигнуто с помощью шаблонов данных, как описано здесь , где вы можете видеть, что содержимое изменяется в зависимости от того, какой шаблон применим.Вы можете определить шаблоны в своем словаре ресурсов и ссылаться на них таким образом.Я думаю, что на это также может быть полезно сослаться, поскольку, хотя оно и не имеет прямого отношения к вашему вопросу, оно описывает различные способы сегментирования контента в вашем приложении и содержит некоторые соответствующие обсуждения.