所有的窗口控件都有一个名为anchor的属性,通过它我可以强制控制粘在它的表面上,如果有人重新调整大小形成控件的高度&宽度也增加&与表格大小一起减少。
我问了一个人如何在wpf中这样做,他说如下 WPF中的“停靠”可以通过设置子控件的HorizontalAllignment和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>
所以请编辑ny xaml以实现我想要的......谢谢
答案 0 :(得分:1)
我不会为你编写代码,但我会告诉你需要做些什么来学习如何正确编码。
首先,你应该学习what layout controls WPF has。我实际上建议阅读this code project article,其中包括每个布局控件的快速直观表示以及它们的工作方式。
您当前的XAML正在错误地使用Grid
控件以及当前控件的设置方式,您也可以使用Canvas
,它用于静态布局。
如果您通过定义Grid
和RowDefinitions
正确使用ColumnDefinitions
控件,并将控件分配给特定Grid.Row
和Grid.Column
,我会得到你想要的。 :)
答案 1 :(得分: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>