WPF - 普通[标签:输入]控制的最佳实践

Chr*_*ert 5 wpf controls text label

我想知道,这是获得WPF中众所周知的标签输入[或输出,无关紧要]组合的最佳和最快捷方式.它是一个简单的任务,只想到"对象"ME的快速输出:


姓名 - 基督徒

年龄 - 28岁

心情 - 很好


我知道,我可以使用带有TextBlocks的Grid.但说实话,这个"短"的XAML几乎是半页(每个标签上的RowDefinitions,ColDefs,Grid.Col)

另一种方法,使用三个StackPanels(水平)和一个垂直方向似乎也有点愚蠢.在这种情况下,我必须给每个Label一个固定的宽度,以使缩进正确.它只是没有"感觉"正确.

所以,鉴于上面的情况,你得到一个自定义对象,只需要将3-6属性转换为只读的GUI,你会怎么做(在WPF,Silverlight中,如果你真的心情:).

当然,我可以为此编写一个usercontrol.但是为什么重新发明轮子,如果它可能已经在那里......

最后,为了进一步说明,我刚才在现实生活中创建的例子就是这篇文章的原因:

      <StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="Log Count"  Width="100"/>
            <TextBlock Text="{Binding LastLogRun.LogMessageCount}"/>
        </StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="Start Time" Width="100"/>
            <TextBlock Text="{Binding LastLogRun.StartTime}"/>
        </StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="End Time" Width="100"/>
            <TextBlock Text="{Binding LastLogRun.EndTime}"/>
        </StackPanel>
    </StackPanel>
Run Code Online (Sandbox Code Playgroud)

Bry*_*son 1

如果您使用 3.5sp1,则可以在绑定中使用 StringFormat。像这样的东西应该有效......

<TextBlock Text="{Binding LastLogRun.LogMessageCount, StringFormat={}Log Count - {0}}" />
Run Code Online (Sandbox Code Playgroud)