2016-12-02 20 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