2

我是 WPF 的新手,我无法弄清楚一些事情。我刚刚开始了一个新项目,我想制作一个 StackPanel,因为我在教程中看到了它。但是现在我已经实现了 StackPanel,我得到了 2 个错误。

对象“Window”已经有一个子对象,无法添加“StackPanel”。'Window' 只能接受一个孩子。第 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>

提前致谢

4

3 回答 3

4

AWindow只能包含一个孩子。但是,您Window同时包含 aGrid和 a StackPanel

要解决此问题,您需要将StackPanel网格放在内部(如果这是有意的话)或将网格GridStackPanel内部都包裹在另一个面板中,以您想要的方式定位两个元素。

于 2013-10-28T08:06:46.087 回答
1

像一些控件Window只能有一个孩子。您将不得不删除Grid或嵌套另一个Grid围绕您的Gridand Stackpanel

例子:

 <Grid x:Name="outerGrid">
     <Grid x:Name="innerGrid"></Grid>
     <StackPanel x:Name="innerStackPanel></StackPanel>
 </Grid>
于 2013-10-28T08:06:15.687 回答
1

Window是 a ContentControl,因此只能有一个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>
于 2013-10-28T08:09:11.860 回答