XAML ComboBox项目被垂直裁剪

时间:2017-03-21 10:57:48

标签: wpf xaml combobox

我有一个ComboBox,其中的项目文本处于"下拉模式"在顶部和底部被裁剪,像这样: ComboBox with cropped text

我已经尝试了Height,FontSize和VerticalContentAlignment属性的各种值组合,但它坚持在每个项目的上方和下方放置大量空白,然后裁剪文本,如您所见。理想情况下,我希望减少或消除此空白,以使文本保持与其他网格项中的文本相同的大小(或略小)。我希望组合框在不处于下拉模式时与网格单元格的高度相同,因此使组合框本身更高以便为其中的项目提供更多空间并不是一个好的解决方案。

这是我的XAML代码的相关位:

<Window.Resources>
    <DataTemplate DataType="{x:Type data:PointTimeRoute}">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Top">
            <Label Content="{Binding PTTime, Converter={StaticResource TimespanFormatter}}" Height="20" FontSize="11" VerticalContentAlignment="Stretch"></Label>
            <Label Content="{Binding PTLoc}" Height="20" FontSize="11" VerticalContentAlignment="Stretch"></Label>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="TextEditor">
        <TextBox Text="{Binding TimeSpan, Converter={StaticResource TimespanFormatter}}" Height="20" FontSize="11" VerticalContentAlignment="Stretch"/>
    </DataTemplate>
    <DataTemplate x:Key="ComboEditor">
        <ComboBox SelectedValue="{Binding PointTimeRoute}" ItemsSource="{Binding Converter={StaticResource FromToDutyFilter}}" Height="20" FontSize="11" VerticalContentAlignment="Stretch"/>
    </DataTemplate>
</Window.Resources>

注意:&#34; TimespanFormatter&#34;在Application.Resources中定义,并且不包含Height,FontSize或任何其他属性的任何设置。

1 个答案:

答案 0 :(得分:3)

标签的高度=“20”,FontSize =“11” Padding =“5”(5是Label的默认值)。它导致文本空间不足。设置较小的填充或使用TextBlocks例如