如何利用ListBoxItem WPF中的空间

时间:2017-04-20 10:04:07

标签: wpf listbox datatemplate

<DataTemplate x:Key="dtTeamInGame">
        <WrapPanel MaxHeight="20" >
            <Label x:Name="txtPath" Content="{Binding Path = FirstName, Mode=TwoWay}" MinWidth="35" FontStretch="Expanded" ></Label>
            <Label x:Name="txtPath2" Content="{Binding Path = SurName, Mode=TwoWay}" MinWidth="125"  ></Label>
        </WrapPanel>
</DataTemplate>


<ListBox  x:Name="listBox" ItemTemplate="{DynamicResource dtTeamInGame}" HorizontalAlignment="Left" Height="100" Margin="97,206,0,0" VerticalAlignment="Top" Width="381">
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem"  BasedOn="{StaticResource {x:Type ListBoxItem}}">
                <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDownHome" />
            </Style>
        </ListBox.ItemContainerStyle>
</ListBox>

我的数据模板中有两个标签,我希望看到标签中的所有文字,但文字是剪掉的。我希望看到所有文本和文本都应居中。我增加了标签的高度但文本没有居中。当我将包装面板的最大高度设置为20并且我需要它为20时出现了这个问题。我想以相同的字体大小垂直居中。我已将标签的最小高度设置为30,但文本不是垂直居中的。

在列表框中剪切标签

The clipping of the label within a list box

1 个答案:

答案 0 :(得分:1)

Padding元素的Label属性设置为0或使用TextBlocks

<DataTemplate x:Key="dtTeamInGame">
    <WrapPanel MaxHeight="20">
        <Label x:Name="txtPath" Content="FirstName" MinWidth="35" FontStretch="Expanded" Padding="0"></Label>
        <Label x:Name="txtPath2" Content="Surname" MinWidth="125" Padding="0"></Label>
    </WrapPanel>
</DataTemplate>