Wpf 奇怪的白色盒子覆盖控件

Wpf 奇怪的白色盒子覆盖控件,wpf,Wpf,在Designer中,一切看起来都很好,但在Debbug中,一个奇怪的白色矩形覆盖了它的一部分(如果我没有在按钮中设置任何边距,它看起来很好) 我做错了什么?按钮上的边距margin=“454,15,10378”正在压缩按钮的可用空间。如果您使窗口变大,您将看到整个按钮 编辑 在XAML中组织布局有不同的方法,但通常网格是一个不错的选择 这是你写它的一种方式 <Grid> <Grid.RowDefinitions> <RowDefinitio

在Designer中,一切看起来都很好,但在Debbug中,一个奇怪的白色矩形覆盖了它的一部分(如果我没有在按钮中设置任何边距,它看起来很好)



我做错了什么?

按钮上的边距margin=“454,15,10378”正在压缩按钮的可用空间。如果您使窗口变大,您将看到整个按钮

编辑

在XAML中组织布局有不同的方法,但通常网格是一个不错的选择

这是你写它的一种方式

<Grid>

  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="Auto"/>
  </Grid.ColumnDefinitions>

  <Label Grid.Row="0" Grid.Column="0" Content="Things:" HorizontalAlignment="Left" Margin="7" VerticalAlignment="Top" FontSize="22"/>
  <Button Grid.Row="0" Grid.Column="1" Height="28" Width="180" Background="Transparent" BorderThickness="0" >
    <StackPanel Orientation="Horizontal">
      <Image Source="Resources/addpackage2.png" Width="35" />
      <TextBlock Text="Add" Margin="3,0,3,0" FontSize="18" />
    </StackPanel>
  </Button>

</Grid>

我已将行和列定义添加到网格中。在本例中,两行两列

顶行将根据其内容自动调整大小。第二行填充剩余的空间

类似地,右侧列将根据其内容自动调整大小,左侧列将填充剩余空间

这只是一个例子。您可能需要定义不同的布局。我认为屏幕的底部并不总是空白

定义了行和列之后,可以通过指定grid.Row和grid.Column属性,将各个控件分配给网格中的单元格

我已将您的标签放置在第0行第0列,并已将按钮放置在第0行第1列

非常重要的是,我已经从按钮中删除了边距定义。在我看来,这种定位控制总是错误的


我认为布局或多或少是您想要的。

正如菲尔所说,您的错误是使用边距来定位控件。我猜你是用设计器来定位控件的。不要在设计器中拖动它们。编辑XAML以设置布局,在设计器中查看结果。使用具有行和列的网格,将布局的主要元素以及面板或项控件放置在每个“单元”内,以重复分组次要布局。
<Grid>

  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="*"/>
  </Grid.RowDefinitions>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="Auto"/>
  </Grid.ColumnDefinitions>

  <Label Grid.Row="0" Grid.Column="0" Content="Things:" HorizontalAlignment="Left" Margin="7" VerticalAlignment="Top" FontSize="22"/>
  <Button Grid.Row="0" Grid.Column="1" Height="28" Width="180" Background="Transparent" BorderThickness="0" >
    <StackPanel Orientation="Horizontal">
      <Image Source="Resources/addpackage2.png" Width="35" />
      <TextBlock Text="Add" Margin="3,0,3,0" FontSize="18" />
    </StackPanel>
  </Button>

</Grid>