2014-09-03 3 views
0

У меня есть поле со списком VerticalContentAlignment, установленное на Center, однако оно по-прежнему не является центром. Я понял, что проблема заключается в том, что она сосредоточена на строчных буквах, а не на тексте в целом. Итак, если у вас есть текст, например This Is An Example, и измерьте верхнее/нижнее пространство нижнего регистра e, то оно будет центрировано. Однако заглавные буквы делают его более выровненным. Во многих приложениях это обрабатывается .... есть ли способ справиться с этим в WPF?Комбобокс не визуально центрирован

+1

вы можете показать разметку – MethodMan

ответ

1

Вы можете использовать ComboBox.ItemTemplate property, чтобы определить, каким должен быть ваш ComboBoxItem. Вы можете организовать свое содержание элемента в любом случае, что вы видите припадок:

<ComboBox ItemsSource="{Binding Items}"> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" VerticalAlignment="Center" /> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

Если это не делать то, что вы хотите, в качестве альтернативы вы можете использовать Run.BaselineAlignment property для дальнейших вариантов:

<ComboBox ItemsSource="{Binding Items}"> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock VerticalAlignment="Center"> 
       <Run BaselineAlignment="TextBottom" Text="{Binding}" /> 
      </TextBlock> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

Я просто думал ... вы можете также быть в состоянии расположить текст, где вы хотите его с помощью TextBlock.Margin или TextBlock.Padding свойства:

<ComboBox ItemsSource="{Binding Items}"> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" Margin="0,2,0,0" /> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 
Смежные вопросы