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

时间:2016-12-02 08:12:12

标签: c# wpf

所以我完全陷入困境。我想要做的就是在网格外添加一个按钮。 我收到错误“属性'内容'只能设置一次。

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

我尝试在网格和按钮周围添加一个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>

1 个答案:

答案 0 :(得分:2)

您的问题是:window只能包含1个内容。 如果您想在窗口中添加多个控件,则需要将它们放在某种容器中,例如stackpanelgrid - 所以如果您不希望它出现在'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,例如