2014-09-03 51 views
0

我有一個組合框VerticalContentAlignment設置爲Center但是它仍然不是中心。我意識到問題在於它是以小寫字母爲中心,而不是整個文本。因此,如果您有像This Is An Example這樣的文字並測量小寫字母e的上/下空格,那麼它將居中。但是,大寫字母使它看起來更加頂端一致。在許多應用程序中,這是處理....有沒有辦法在WPF中處理這個?Combobox不是視覺中心

+1

你能證明你的標記 – MethodMan 2014-09-03 15:56:35

回答

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.MarginTextBlock.Padding性質,定位文本:

<ComboBox ItemsSource="{Binding Items}"> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" Margin="0,2,0,0" /> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox>