ListView изменяет размеры без учета определений столбцов - PullRequest
1 голос
/ 13 января 2012

У меня есть очень простое окно XAML:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <ContentControl Content="{Binding Path=Item}"  ContentTemplate="{StaticResource aaaa}" Grid.Row="1"/>
    <ListView   ItemsSource="{Binding Path=ItemList}" ItemTemplate="{StaticResource aaaa}" HorizontalContentAlignment="Stretch"/>
</Grid>

, где ContentControl и ListView имеют один и тот же шаблон:

<DataTemplate DataType="{x:Type src:ItemType}" x:Key="aaaa">
        <Grid ShowGridLines="True" Height="30">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <TextBlock  Name="resizinglabel" Text="this is a very long text that has to be trimmed"  />
            <TextBlock Name="fixedLabel" Text="always to the left" Grid.Column="1" Background="Red" />
        </Grid>
    </DataTemplate>

Но когда я изменяю размер окна, вид списка кажетсяимеют странное поведение:

До критической точки изменения размера: before

После критической точки изменения размера: after

в нескольких словах я хочуправая метка всегда будет видна справа.Я пробовал также со свойством isSharedSizeScope, но id не работает ... Итак, вопрос в том, что мне нужно сделать, чтобы просмотр списка вел себя как элемент управления содержимым?

Заранее спасибо!

1 Ответ

3 голосов
/ 13 января 2012

ListViews автоматически добавит полосы прокрутки, если их содержимое слишком велико для размещения на экране. Отключите горизонтальную полосу прокрутки, и она должна работать.

<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" />
...