2016-08-31 2 views
2

Я не эксперт wpf, поэтому, возможно, проблема действительно проста, чем кажется. Во всяком случае, я сделал StackPanel с этой структурой:Невозможно выровнять метку в стеке панели

<StackPanel Orientation="Horizontal"> 
      <Label Content="Match" FontWeight="Bold"/> 
      <Label Content="Foo" HorizontalAlignment="Right"/> 
</StackPanel> 

Как вы можете видеть, что я установить ориентацию horizontal таким образом я могу иметь и метку в той же строке. Мне также нужно выровнять вторую метку «Foo» справа. Я попытался установить свойство HorizontalAlignment, но метка застряла в том же положении. Что я могу сделать, чтобы исправить это?

ответ

2

Самый простой ответ заключается в том, что вы не можете.

Stackpanel предназначен для складывания вещей друг за другом.

Вы можете сделать это вертикально горизонтально, и вы можете выровнять панель стека вправо или влево, но вы не можете выровнять элементы внутри него.

Вместо этого вы можете использовать Grid или другой контейнер.

<Grid> 
     <Label Content="Match" FontWeight="Bold" HorizontalAlignment="Left"/> 
     <Label Content="Foo" HorizontalAlignment="Right"/> 
</Grid> 
+0

Получил, спасибо как за помощь :) – AgainMe

1

StackPanel не поддерживает индивидуальное выравнивание дочерних элементов управления. Однако вы можете установить выравнивание всей панели стека. Однако это не так.

Что вы можете сделать, это разместить свои метки в Uniform Grid от 1 row и 2 columns.

<UniformGrid Rows="1" Columns="2"> 
     <Label Content="Match" FontWeight="Bold"/> 
     <Label Content="Foo" HorizontalAlignment="Right"/> 
</UniformGrid> 
Смежные вопросы