我刚开始在VS2008中使用WPF设计器,现在我对它知之甚少。我想通过实验来学习。
以下是我的XAML(主要由vs生成):
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="478" />
<RowDefinition Height="64*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="478" />
<ColumnDefinition Width="140*" />
</Grid.ColumnDefinitions>
<Canvas Name="canvas1" Margin="0" />
<TextBox Grid.Row="1" Grid.Column="0" Name="textBox1" HorizontalAlignment="Center" Width="120" VerticalAlignment="Top" Margin="0,5" Height="25" />
</Grid>
如你所见,我的画布在上面,文本框在下面。我希望文本框与画布的宽度水平居中。为了实现这一点,我将列的宽度设置为478,这是我希望画布的宽度。
这是一种有效的方法吗?我自己不太喜欢这个解决方案,感觉应该有更好的方法。请记住,画布的“客户机rect”必须是478,这意味着稍后我可能需要在运行时调整画布的大小,以确保它是这样的大小。这种特殊的布局需要以这样的方式进行:如果画布的大小发生变化,文本框将正确地重新调整为水平位置,以保持画布下方的居中。
其他人会怎么做?