Мне интересно, какой самый лучший и самый быстрый способ получить хорошо известную комбинацию Label Input [или output, не имеет значения] в WPF. Это простая задача, просто подумайте о быстром выводе «объекта» ME:
Имя - Кристиан
Возраст - 28
Настроение - Хорошо
Я знаю, я могу использовать Grid с TextBlocks. Но, если честно, «короткий» XAML для этого составляет почти половину страницы (RowDefinitions, ColDefs, Grid.Col на каждой метке)
Альтернативный способ использования трех стековых панелей (горизонтальных) с одной вертикалью также кажется немного глупым. В этом случае я должен дать каждой метке фиксированную ширину, чтобы сделать правильный отступ. И это просто "не чувствуется" правильно.
Итак, с учетом описанной выше ситуации вы получили пользовательский объект с 3-6 свойствами, которые вы просто хотите выгрузить в графический интерфейс только для чтения, как бы вы это делали (в WPF, Silverlight, если вы действительно в настроении) :.)
Я могу, конечно, написать для этого пользовательский контроль. Но зачем изобретать велосипед, если он уже здесь ...
И, наконец, чтобы проиллюстрировать еще больше, пример, который я только что создал в реальной жизни и послужил причиной для этого поста:
<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>