C# 内容设置多次

C# 内容设置多次,c#,wpf,xaml,C#,Wpf,Xaml,在Visual Studio 2013中使用WPF时,我遇到了一个错误: 错误2属性“Content”设置了多次 错误1属性“内容”只能设置一次 现在,首先。我转向谷歌获取错误消息&得到了一个链接到StackOverflow的顶级结果 包括MSDN帖子: 虽然我得到了一个基于原始posters代码的定制解决方案的信息集合,但我还没有遇到一个实际的基本解决方案,详细说明此错误的原因(XAML新手),而这可能是多个报告问题的重复。我个人宁愿避免发布有问题的代码来获得定制的解决方案。我更愿意来

在Visual Studio 2013中使用WPF时,我遇到了一个错误:

错误2属性“Content”设置了多次

错误1属性“内容”只能设置一次

现在,首先。我转向谷歌获取错误消息&得到了一个链接到StackOverflow的顶级结果

包括MSDN帖子:

虽然我得到了一个基于原始posters代码的定制解决方案的信息集合,但我还没有遇到一个实际的基本解决方案,详细说明此错误的原因(XAML新手),而这可能是多个报告问题的重复。我个人宁愿避免发布有问题的代码来获得定制的解决方案。我更愿意来到这里,询问社区为什么一个新手XAMP/WPF开发人员可能会遇到这个应用程序和解决方案&而不是太多顶级、顶级的最佳实践。更多的WPF/XAMP开发人员提供了一些建议,告诉我们如何轻松地识别解决方案,并在将来继续执行更深入的调试步骤


为便于辩论:

<Window x:Class="WPFT.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="197.198" Width="427.95">
    <TextBlock>Hello</TextBlock>
    <TextBlock>World</TextBlock>
</Window>

你好
世界

如果在任何UIElement中使用Content dependency属性设置多个元素,则会出现此错误。您需要在一个面板中包装多个元素,以便Content属性只有一个子元素。例如

<Button>
    <StackPanel Orientation="Horizontal">
        <Image />
        <TextBlock />
    </StackPanel>
</Button>

<Border>
    <StackPanel>
        <TextBlock />
        <Image />
        <DatePicker />
    </StackPanel>
</Border>

按钮和边框元素之间的区域是用于指定以下内容的缩写:

<Button>
    <Button.Content>
        <!-- Content goes here -->
    </Button.Content>
</Button>

一个窗口只能包含一个元素

在代码中

<Window x:Class="WPFT.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="197.198" Width="427.95">
    <TextBlock>Hello</TextBlock>
    <TextBlock>World</TextBlock>
</Window>

你好
世界
你的窗口有2个文本块 你应该试试像这样的东西

<Window x:Class="WPFT.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="197.198" Width="427.95">
    <Grid>
        <TextBlock>Hello</TextBlock>
        <TextBlock>World</TextBlock>
    </Grid>
</Window>

你好
世界

您需要发布代码以获取答案。听起来您好像在多个地方设置了代码。也许在xaml中进行数据绑定,并尝试在代码中进行设置。但是没有代码。。。谁知道呢?你有没有费心去读你贴到的链接?MSDN post的公认答案的第一句话准确地告诉了您“此错误的原因”:(控件X)…是一个ContentControl,意味着它只能在it3/4中包含一个子元素,您链接到的答案中明确了潜在问题。您正在将
.Content
属性设置为多个
对象
s,而
.Content
属性只能设置为单个
对象
。您需要指定一个包含文本块的面板。。。将其包裹在或任何其他面板中。一个窗口需要一个根元素,而这确实解决了我这边的孤立问题。关于为什么可能会遇到此错误,还没有深入分析“窗口只能包含1个元素”的哪一部分不清楚。窗口控件有一个Content属性,MSDN提到内容是文本或对象。所以你放了一个容器,比如网格,StackPanel。。。这些控件没有内容,它们有子控件。在这之后,每个容器都有自己的方式来表示其他对象,如列、行或并排。在使用内容的控件和使用容器的控件之间进行区分,让您可以执行[tag:Jaime Still]示例中的按钮(按钮有内容,因此通过放置容器控件,您可以放入多个元素)。很高兴知道。尝试将
网格
包装在
画布
中,出于参数考虑:
在与您所展示的示例类似的示例中,以获得两个网格。耶!