Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 无法在XAML中的ItemsControl中放置子项-“;“内容只能设置一次”;_Wpf_Itemscontrol - Fatal编程技术网

Wpf 无法在XAML中的ItemsControl中放置子项-“;“内容只能设置一次”;

Wpf 无法在XAML中的ItemsControl中放置子项-“;“内容只能设置一次”;,wpf,itemscontrol,Wpf,Itemscontrol,我已经创建了一个UserControl,它的LayoutRoot是ItemsControl,画布是ItemsPanel,但现在我无法在其中添加形状 此外,我在边框内有一个工作画布,但当我试图删除画布子项并将Border+Canvas转换为UserControl时,我无法再添加子项,因为“内容只能设置一次” 这是我的密码: 之前(正在工作,但我必须创建一个UserControl以便重用): 最近的一次尝试,现在使用ItemsPanel作为UserControl根面板,也不起作用: <Item

我已经创建了一个UserControl,它的LayoutRoot是ItemsControl,画布是ItemsPanel,但现在我无法在其中添加形状

此外,我在边框内有一个工作画布,但当我试图删除画布子项并将Border+Canvas转换为UserControl时,我无法再添加子项,因为“内容只能设置一次”

这是我的密码:

之前(正在工作,但我必须创建一个UserControl以便重用):

最近的一次尝试,现在使用ItemsPanel作为UserControl根面板,也不起作用:

<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>