WPF - StackPanel的问题

时间:2013-10-28 07:59:51

标签: wpf

我是WPF的新手,我无法解决一些问题。我刚开始一个新项目,我想制作一个StackPanel,因为我在教程中看到了这个。但现在我已经实现了StackPanel,我得到了2个错误。

  

对象'Window'已经有一个子节点,无法添加'StackPanel'。 '窗口'只能接受一个孩子。 9号线位置116。

     

属性“内容”设置不止一次。

有人可以向我解释我的错误。 这是我的代码:

<Window x:Class="CheckDatabase.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="CheckDatabase" Height="350" Width="525">
<Grid Margin="10,80,10,10" >
    <TextBox TextWrapping="Wrap"/>
</Grid>

<StackPanel Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Name="ButtonPanel" VerticalAlignment="Top">
    <Button Margin="0,10,0,10">Button 1</Button>
    <Button Margin="0,10,0,10">Button 2</Button>
</StackPanel>

提前致谢

3 个答案:

答案 0 :(得分:3)

Window只能包含一个孩子。但是,您的Window包含GridStackPanel

要解决此问题,您需要将StackPanel置于网格内(如果这是意图)或将GridStackPanel包含在另一个定位两个元素的面板中以你想要的方式。

答案 1 :(得分:1)

Window这样的某些控件只能有一个孩子。您必须移除Grid或在GridGrid周围嵌套另一个Stackpanel

示例:

 <Grid x:Name="outerGrid">
     <Grid x:Name="innerGrid"></Grid>
     <StackPanel x:Name="innerStackPanel></StackPanel>
 </Grid>

答案 2 :(得分:1)

WindowContentControl,因此只能有一个Content。您可以执行以下操作以获得预期的布局

<Window x:Class="CheckDatabase.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="CheckDatabase" Height="350" Width="525">
<StackPanel>
  <Grid Margin="10,80,10,10" >
    <TextBox TextWrapping="Wrap"/>
  </Grid>

  <StackPanel Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Name="ButtonPanel" VerticalAlignment="Top">
    <Button Margin="0,10,0,10">Button 1</Button>
    <Button Margin="0,10,0,10">Button 2</Button>
  </StackPanel>
</StackPanel>