0

所有 Windows 控件都具有称为锚点的属性,通过它我可以强制控件粘在其表面上,如果有人重新调整窗体的大小,控件的高度和宽度也会随着窗体大小增加和减小。

我问了一些人如何在 wpf 中做到这一点,他说 WPF 中的“停靠”可以通过设置子控件的 Horizo​​ntalAllignment 和 VerticalAllignment 属性来完成。

WPF 中的“锚定”可以通过在子节点上设置 Margin 和/或在容器上设置 Padding 来完成。

不幸的是,我无法这样做。所以这是我的示例 xaml。

<Window x:Class="WpfApplication1.Window3"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window3" Height="300" Width="515">
<Grid>
    <Label Name="lblName" Content="Enter Name" Height="28" HorizontalAlignment="Left" Margin="-17,5,0,0"  VerticalAlignment="Top" />
    <Label Content="Enter Address" Height="28" HorizontalAlignment="Left" Margin="-17,39,0,0" Name="label2" VerticalAlignment="Top" />
    <Label Content="Enter Company" Height="28" HorizontalAlignment="Left" Margin="-17,68,0,0" Name="label3" VerticalAlignment="Top" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="83,10,0,0" Name="textBox1" VerticalAlignment="Top" Width="222" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="83,73,0,0" Name="textBox2" VerticalAlignment="Top" Width="222" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="83,42,0,0" Name="textBox3" VerticalAlignment="Top" Width="222" />
</Grid>
</Window>

所以请编辑 ny xaml 以实现我正在寻找的东西....谢谢

4

2 回答 2

1

我不会为你编写代码,但我会告诉你需要做什么来学习如何正确编码。

首先,您应该了解WPF 具有哪些布局控件。我实际上建议通读这篇代码项目文章,其中包括每个布局控件及其工作方式的快速可视化表示。

您当前的 XAML 未Grid正确使用控件以及当前控件的设置方式,您不妨Canvas使用用于静态布局的 .

如果您Grid通过定义RowDefinitionsand来正确使用控件ColumnDefinitions,并将您的控件分配给特定的Grid.Rowand Grid.Column,您将得到您想要的。:)

于 2012-09-12T19:21:22.913 回答
0

这是另一种方法。它会给你静态布局:

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

  <Label Grid.Column="0" Grid.Row="0" Name="lblName" Content="Enter Name"/>     
  <Label Grid.Column="0" Grid.Row="1" Content="Enter Address" />     
  <Label Grid.Column="0" Grid.Row="2" Content="Enter Company" />     
  <TextBox Grid.Column="1" Grid.Row="0" Width="200"/>     
  <TextBox Grid.Column="1" Grid.Row="1" Width="200" />     
  <TextBox Grid.Column="1" Grid.Row="2" Width="200"/> 
</Grid>
于 2012-09-12T19:24:47.137 回答