C# 在网格外部添加一个按钮-Wpf

C# 在网格外部添加一个按钮-Wpf,c#,wpf,C#,Wpf,所以我完全被卡住了。我所要做的就是在网格外添加一个按钮。 我收到错误“属性'Content'只能设置一次” 我正在尝试制作一个扫雷舰游戏,其中当然包含一个网格。以及其他功能,如重新启动 我尝试在网格和按钮周围添加stackpanel(和其他各种容器),然后内容错误消失,我得到一个新的错误。。。 PresentationCore.dll中发生“System.ArgumentException”类型的未处理异常 其他信息:必须先断开指定子项与当前父项Visual的连接,然后才能附加到新的父项Visu

所以我完全被卡住了。我所要做的就是在网格外添加一个按钮。 我收到错误“属性'Content'只能设置一次”

我正在尝试制作一个扫雷舰游戏,其中当然包含一个网格。以及其他功能,如重新启动

我尝试在网格和按钮周围添加stackpanel(和其他各种容器),然后内容错误消失,我得到一个新的错误。。。 PresentationCore.dll中发生“System.ArgumentException”类型的未处理异常

其他信息:必须先断开指定子项与当前父项Visual的连接,然后才能附加到新的父项Visual。“

我只需要知道使用哪个容器在网格上有一个按钮和可能的其他组件

<Window x:Class="MineSweeper.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:MineSweeper"
    mc:Ignorable="d"
    Title="MineSweeper" Height="500" Width="525">


    <Grid Name="oGrid" HorizontalAlignment="Left" Height="100" Margin="200,75,0,0" VerticalAlignment="Top" Width="100"  Background="Transparent" PreviewMouseLeftButtonDown="oGrid_PreviewMouseLeftButtonDown"
      PreviewMouseRightButtonDown="oGrid_PreviewMouseRightButtonDown">
    </Grid>


    <Button x:Name="button" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Canvas.Left="200" Canvas.Top="10"/>

这是我用stackpanel试过的

    <StackPanel>
    <Grid Name="oGrid" HorizontalAlignment="Left" Height="100" Margin="200,75,0,0" VerticalAlignment="Top" Width="100"  Background="Transparent" PreviewMouseLeftButtonDown="oGrid_PreviewMouseLeftButtonDown"
      PreviewMouseRightButtonDown="oGrid_PreviewMouseRightButtonDown">
    </Grid>


    <Button x:Name="button" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Canvas.Left="200" Canvas.Top="10"/>
</StackPanel>

您的问题是:一个
窗口只能有一个内容。
如果你想在一个窗口中添加多个控件,你需要将它们放在某种容器中,比如
stackpanel
grid
——因此,如果你不想将其放在
“oGrid”
中,你应该在其周围放置另一个容器

<StackPanel>
    <Grid Name="oGrid" HorizontalAlignment="Left" Height="100" Margin="200,75,0,0" VerticalAlignment="Top" Width="100"  Background="Transparent" PreviewMouseLeftButtonDown="oGrid_PreviewMouseLeftButtonDown"
           PreviewMouseRightButtonDown="oGrid_PreviewMouseRightButtonDown">
    </Grid>
    <Button x:Name="button" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Canvas.Left="200" Canvas.Top="10"/>
 </StackPanel>


编辑:您刚刚更改了您的问题…请发布您使用Stackpanel尝试的代码,例如,

窗口
包含一个
控件
,其余内容必须放在该
控件
中,该控件现在是容器。因此,您现在所做的是不可能的。请提供您使用
Stackpanel尝试的代码nel
。这将是您的第一个错误的解决方案-如果我们看到您使用Stackpanel时的情况,您的Stackpanel使用有什么问题可以得到解答it@AnjumSKhan我确实理解单一控制的事情。有没有其他方法来做我正在尝试的事情?问题是,因为我正在创建一个思维清理游戏,我确实需要一个独立的grid感谢您的响应。如我在描述中所述,我已尝试过此操作,但在运行时出现下一个错误:“PresentationCore.dll中发生了类型为“System.ArgumentException”的未处理异常。其他信息:附加到新父Visual之前,必须断开指定子Visual与当前父Visual的连接。”“请使用
StackPanel
best和完整的xaml提供您的代码-您可能在那里遇到了错误。因为没有显示第二个错误,因为发生第一个错误时xaml将停止转换。因此,使用StackPanel修复这一个,现在您必须处理下一个错误,这与您使用的StackPanel无关。您提供的StackPanel解决方案正是我尝试过的。给定的xaml是我完整的xaml可能是我的一个转储问题-但是您是否尝试过清理和重建您的解决方案?因为xaml对我来说似乎很好(它在我的VS中也起作用),他显然在代码中的某个地方试图将oGrid添加到另一个容器中,但他不能,因为它已经有一个父容器了。因此,仅发布XAML只是事实的一半。但问题不是这样,问题是在你问问题之前,你必须试着自己找到一个解决方案。在这种情况下,他似乎不知道WPF是如何工作的。