Вот тривиальный пример проблемы, с которой я сталкиваюсь:
<StackPanel Orientation="Horizontal">
<Label>Foo</Label>
<TextBox>Bar</TextBox>
<ComboBox>
<TextBlock>Baz</TextBlock>
<TextBlock>Bat</TextBlock>
</ComboBox>
<TextBlock>Plugh</TextBlock>
<TextBlock VerticalAlignment="Bottom">XYZZY</TextBlock>
</StackPanel>
Каждый из этих элементов, кроме TextBox
и ComboBox
, вертикально позиционирует текст, который они содержат по-разному, и выглядит просто уродливым.
Я могу выровнять текст в этих элементах, указав a Margin
для каждого. Это работает, за исключением того, что маржа находится в пикселях, а не относительно разрешения экрана или размера шрифта или любой другой вещи, которая будет переменной.
Я даже не уверен, как я вычислил правильное нижнее поле для элемента управления во время выполнения.
Какой лучший способ сделать это?