WPF ListBox宽度绑定

时间:2018-05-02 13:43:17

标签: c# wpf data-binding listbox

我正在使用WPF ListBox,在ItemTemplate中我有一个StackPanel。我试图将StackPanel的宽度绑定到ListBox的ViewportWidth,但我无法找到这样做的方法。如果我将ActualWidth绑定它关闭,但由于垂直滚动条包含在ActualWidth中,我仍然会隐藏在它后面的东西和一个水平滚动条。

请参阅下面的XAML:

<ListBox x:Name="MessagesGrid" Grid.Column="2" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Width="{Binding Path=ActualWidth, ElementName=MessagesGrid}" HorizontalAlignment="Stretch">
            <StackPanel Name="ToMe"  HorizontalAlignment="Stretch" Visibility="{Binding IsFromMe, Converter={StaticResource BooleanToHiddenConverter}}">
                <TextBlock Text="{Binding Date}" FontSize="8" TextWrapping="Wrap" Padding="0,0,60,0"/>
                <TextBlock Text="{Binding Text}" FontSize="12" TextWrapping="Wrap" Padding="0,0,60,0"/>
            </StackPanel>
            <StackPanel Name="FromMe" HorizontalAlignment="Stretch" Visibility="{Binding IsFromMe, Converter={StaticResource BooleanToVisibleConverter}}">
                <TextBlock Text="{Binding Date}" HorizontalAlignment="Right" FontSize="8" TextWrapping="Wrap" Padding="60,0,0,0"/>
                <TextBlock Text="{Binding Text}" HorizontalAlignment="Right"  FontSize="12" TextWrapping="Wrap" Padding="60,0,0,0"/>
            </StackPanel>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

0 个答案:

没有答案