XAML布局有两列

时间:2013-11-18 08:47:48

标签: wpf xaml layout textblock

可以比指定13x2网格更有效地实现以下布局吗?

WPF Layout

有没有例如TextBlock在其内容之前显示属性“heading”的任何内容?像字符串“Date taken:”将是第一个TextBlock的属性。然后,我将实现上述布局,而无需指定2列Grid,如下所示:

<StackPanel Orientation="Vertical">
    <TextBlock Text="Specify date taken" Heading="Date taken:" />
    ...
    <TextBlock />
</StackPanel>

2 个答案:

答案 0 :(得分:1)

你可以在这里安全地使用13x2 Grid。只有Grid高度行的Auto的布局算法实际上并不像您想象的那么昂贵;混合Auto,固定高度和星高时,它会变得更重。但是在你的情况下,这将是最合乎逻辑的方法。

如果您遇到性能问题,则应确保输入框的高度始终固定且等于文字标签的高度,然后您可以使用StackPanel

如果你想对TextBlock上的标题做自己的事情,你应该创建一个用HeaderText属性指定的用户控件。但是,您需要为所有输入控件创建它(DatePicker, TextBox etc etc)这可以通过模板完成。

答案 1 :(得分:0)

试试这个:

<StackPanel Orientation="Vertical">
<TextBlock Text="Specify date taken" Heading="Date taken:" />
   <Run Text="Date taken:   "/>
   <Run Text="Specify date taken"/>
<TextBlock />

您可以将自定义样式应用于每个Run标记。希望它有所帮助!