2013-09-16 3 views
7

У меня есть небольшая проблема с выравниванием моего текста в меткеСодержание выравнивания в ярлыке WPF

это мой XAML код

<GroupBox Header="Normal" Width="450" Height="150" Name="grpNormal"> 
    <Canvas Name="cvsNormal" Width="440" Height="140"> 
     <Label Name="lblStartRegNormal" Width="223" Content="Enter the starting reg number: " FontSize="16" Canvas.Left="2" Canvas.Top="15" HorizontalContentAlignment="Right" /> 
     <TextBox Name="txtStartRegNormal" Height="40" Width="200" Canvas.Right="10" Canvas.Top="15"/> 
     <Label Name="lblEndRegNormal" Width="223" Content="Enter the ending reg number: " FontSize="16" Canvas.Left="5" Canvas.Top="65" HorizontalContentAlignment="Right"/> 
     <TextBox Name="txtEndRegNormal" Height="40" Width="200" Canvas.Right="10" Canvas.Top="65"/> 
    </Canvas> 
</GroupBox> 

здесь является выходным

enter image description here

, но когда я меняю содержимое своей этикетки, двоеточия с правой стороны не выровнены

enter image description here

Что я здесь делаю неправильно?

+0

вы используете холст, как контейнер макета? Если да, то что здесь не так, используйте Grid – thumbmunkeys

+0

, пожалуйста, поделитесь полным XAML-кодом ;-) – makim

+0

@sine я отредактировал мой вопрос с полным кодом XAML –

ответ

5

Если вы используете Snoop WPF, чтобы проверить запущенное приложение, вы обнаружите, что ярлык «Ярлыки» содержит ширину элемента Border a padding 5,5,5,5.

Если вы удалите прокладку с помощью SnoopWPF, все будет отлично. Это означает, что, хотя ширина метки равна 223, ширина текстового содержимого меньше и растягивается на это дополнение на более длинном тексте. Попробуйте сделать ярлык немного шире или просто используйте TextBlock.

+0

Это отлично поработало. Мне просто нужно было увеличить ширину метки. –

7
<GroupBox Header="Normal" Width="450" Height="150" Name="grpNormal"> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto"/> 
       <RowDefinition Height="Auto"/> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"/> 
       <ColumnDefinition Width="Auto"/> 
      </Grid.ColumnDefinitions> 
      <Label Grid.Row="0" Name="lblStartRegNormal" Width="223" Content="Enter the starting reg number: " FontSize="16" HorizontalContentAlignment="Right" /> 
      <TextBox Name="txtStartRegNormal" Grid.Column="1" Height="40" Width="200"/> 
      <Label Grid.Row="1" Name="lblEndRegNormal" Width="223" Content="Enter the ending reg number: " FontSize="16" HorizontalContentAlignment="Right"/> 
      <TextBox Name="txtEndRegNormal" Height="40" Grid.Row="1" Grid.Column="1" Width="200" /> 
     </Grid> 
    </GroupBox> 

Это выглядит следующим образом:

enter image description here

Смежные вопросы