锚定WPF控件以在窗体上粘贴位置调整大小
所有窗口控件都有一个名为anchor的属性,通过该属性,我可以强制控件粘贴在其表面上,如果有人重新调整窗体的大小,控件的高度和宽度也会随着窗体的大小而增减 我问了一些人如何在wpf中做到这一点,他说如下 WPF中的“停靠”可以通过设置子控件的HorizontalAllignment和VerticalAllignment属性来完成 WPF中的“锚定”可以通过设置子容器上的边距和/或容器上的填充来完成 不幸的是,我不能这样做。这是我的示例xaml锚定WPF控件以在窗体上粘贴位置调整大小,wpf,Wpf,所有窗口控件都有一个名为anchor的属性,通过该属性,我可以强制控件粘贴在其表面上,如果有人重新调整窗体的大小,控件的高度和宽度也会随着窗体的大小而增减 我问了一些人如何在wpf中做到这一点,他说如下 WPF中的“停靠”可以通过设置子控件的HorizontalAllignment和VerticalAllignment属性来完成 WPF中的“锚定”可以通过设置子容器上的边距和/或容器上的填充来完成 不幸的是,我不能这样做。这是我的示例xaml <Window x:Class="WpfApp
<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以实现我的目标……谢谢,我不会为您编写代码,但我会告诉您需要做什么来学习如何正确编写代码 首先,你应该学习。实际上,我建议通读,其中包括每个布局控件及其工作方式的快速视觉表示 当前XAML不正确地使用了
网格
控件,按照当前控件的设置方式,您最好使用用于静态布局的画布
如果要通过定义
行定义
和列定义
并将控件指定给特定的网格.Row
和网格.Column
来正确使用控件,您将得到所需的结果。:) 这里有另一种方法。它将为您提供静态布局:
<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>
它是什么?我问了不同的问题。当窗口重新调整大小时,控件也会按比例重新调整大小。@Thomas这应该将控件“锚定”到左上角,并且当窗口大小更改时,它们不应该调整大小。如果你不明白这一点,或者我误解了这个问题,请告诉我。大爸爸回答,他同时设置了RowDefinitions和ColumnDefinitions,但它仍然没有按照我所期望的方式工作。@Thomas删除了宽度/高度属性,这样它就可以根据网格单元的大小进行拉伸。如果要在控件之间留出一些空间,可以保留Margin
属性,或者使用额外的行或列定义来在控件之间留出空间。