2016-12-02 43 views
-2

所以我完全卡住了。我所要做的就是在网格外添加一个按钮。 我收到错误“财产‘的内容’只能设置一次。在网格外添加一个按钮 - Wpf

我试图做一个扫雷游戏,这ofcourse包含一个网格,而且附加功能,如重新启动。

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

附加信息:必须断开当前父指定子视觉附加到新的父视觉之前”

我只需要知道使用哪种容器具有网格上方的按钮和潜在的其他部件。

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

'Window'包含一个单一的内容'control'和其他国家必须走这'control'也就是现在的容器内。所以,你现在在做什么是不可能的。 – AnjumSKhan

+0

请提供您使用'Stackpanel'尝试的代码。这将是解决方案,您的第一个错误 - 您的Stackpanel使用情况出现了什么问题,只要我们看到您使用它做了什么就可以得到回答。 – TripleEEE

+0

@AnjumSKhan我明白单一控件的作用。有没有一种替代方法来做我正在尝试的?问题是,因为我正在创建一个mindsweeper游戏,所以我确实需要一个独立的网格 – Nivek

回答

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尝试的代码。

+0

感谢您的回复。正如我描述说我已经试过了,我在运行时获取下一个错误:“”类型“System.ArgumentException”发生在PresentationCore.dll中 附加信息的未处理的异常:必须从当前父安装之前请断开视觉指定的子到新的父Visual。“” – Nivek

+0

请提供您的代码与'StackPanel'最好的完整的XAML - 你可能有一个错误。因为你的第二个错误只是没有显示,因为当第一个错误发生时xaml停止翻译。所以在StackPanel中,你修复了这个问题,现在你必须去处理下一个错误,这与你使用的StackPanel没有任何关系。 – TripleEEE

+0

您提供的stackpanel解决方案正是我所尝试的。给定的xaml是我完整的xaml – Nivek