可以比指定13x2网格更有效地实现以下布局吗?
有没有例如TextBlock在其内容之前显示属性“heading”的任何内容?像字符串“Date taken:”将是第一个TextBlock的属性。然后,我将实现上述布局,而无需指定2列Grid,如下所示:
<StackPanel Orientation="Vertical">
<TextBlock Text="Specify date taken" Heading="Date taken:" />
...
<TextBlock />
</StackPanel>
答案 0 :(得分:1)
你可以在这里安全地使用13x2 Grid
。只有Grid
高度行的Auto
的布局算法实际上并不像您想象的那么昂贵;混合Auto
,固定高度和星高时,它会变得更重。但是在你的情况下,这将是最合乎逻辑的方法。
如果您遇到性能问题,则应确保输入框的高度始终固定且等于文字标签的高度,然后您可以使用StackPanel
。
如果你想对TextBlock上的标题做自己的事情,你应该创建一个用Header
和Text
属性指定的用户控件。但是,您需要为所有输入控件创建它(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标记。希望它有所帮助!