Wpf 无法在XAML中的ItemsControl中放置子项-“;“内容只能设置一次”;
我已经创建了一个UserControl,它的LayoutRoot是ItemsControl,画布是ItemsPanel,但现在我无法在其中添加形状 此外,我在边框内有一个工作画布,但当我试图删除画布子项并将Border+Canvas转换为UserControl时,我无法再添加子项,因为“内容只能设置一次” 这是我的密码: 之前(正在工作,但我必须创建一个UserControl以便重用): 最近的一次尝试,现在使用ItemsPanel作为UserControl根面板,也不起作用:Wpf 无法在XAML中的ItemsControl中放置子项-“;“内容只能设置一次”;,wpf,itemscontrol,Wpf,Itemscontrol,我已经创建了一个UserControl,它的LayoutRoot是ItemsControl,画布是ItemsPanel,但现在我无法在其中添加形状 此外,我在边框内有一个工作画布,但当我试图删除画布子项并将Border+Canvas转换为UserControl时,我无法再添加子项,因为“内容只能设置一次” 这是我的密码: 之前(正在工作,但我必须创建一个UserControl以便重用): 最近的一次尝试,现在使用ItemsPanel作为UserControl根面板,也不起作用: <Item
<ItemsControl/>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True" ... />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
答案就在错误消息中。一个边界只能有一个孩子。如果要添加多个内容,必须将它们包装在允许多个子项的面板中(例如网格) 像这样的,
<Border>
<ContentContainer><!-- Grid, or StackPanel, or whatever you choose -->
<Object/>
<Object/>
<OBject/>
</ContentContainer>
</Border>
嗯,我的代码和你的完全一样。我最里面的面板总是画布,它位于边框内。边框仅用于布局画布本身。请再次检查您的用户控件!
<ItemsControl/>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True" ... />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<Border>
<ContentContainer><!-- Grid, or StackPanel, or whatever you choose -->
<Object/>
<Object/>
<OBject/>
</ContentContainer>
</Border>