2012-09-12 16 views
0

所有窗口控件具有属性称为锚由我可以强制控制粘在其表面上,如果有人调整形成对照高度&宽度也增加与沿着形式减少&尺寸。锚固WPF控制粘在表格的位置调整

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

WPF中的“锚定”可以通过在容器上设置孩子的边距和/或填充来完成。

不幸的是我不能这样做。所以这里是我的示例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> 

所以请不要编辑纽约XAML达到我所期待的....感谢

回答

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> 
+0

它是什么?我问了不同的事情。当窗口重新调整控件大小时也会按比例重新调整大小。 – Thomas

+0

@Thomas这应该将控件“锚定”到左上角,并且它们不应该在窗口大小更改时调整大小。如果你没有得到这种行为,或者我误解了这个问题,请告诉我。 –

1

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

首先,你应该学会what layout controls WPF has。我实际上建议通过this code project article来阅读,其中包括每个布局控件的快速可视表示以及它们的工作方式。

您当前的XAML正在错误地使用Grid控件,并且您当前控件的设置方式不同,您可能还会使用用于静态布局的Canvas

如果你要通过定义RowDefinitionsColumnDefinitions,并赋予你的控制到一个特定的Grid.RowGrid.Column正确使用Grid控制,你会得到你想要的。 :)

+0

big dady答案和他设置RowDefinitions&ColumnDefinitions都但它仍然不工作的方式我寻找。 – Thomas

+0

@Thomas移除“宽度”/“高度”属性,以便根据网格单元的大小进行拉伸。如果要在控件之间留出一些空间,可以保留'Margin'属性,或者使用额外的Row或Column定义来在控件之间创建空间。 – Rachel