Как изменить ширину изображения в представлении списка в WPF? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть ListView, который содержит Image в качестве предметов.Я хочу, чтобы ширина каждого изображения соответствовала ширине ListView при каждом изменении размера содержащей его сетки.

<!--Playlists-->
<Grid Column="0">
    <ListView Grid.Row="1" Grid.Column="1"
              HorizontalAlignment="Stretch"
              ... >

        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
        </ListView.ItemContainerStyle>

        <!--Images-->
        <ListView.ItemTemplate>
            <DataTemplate DataType="{x:Type models:PlaylistModel}">
                <Grid HorizontalAlignment="Stretch">
                    <Image Source="{Binding ImagePath}"
                           Stretch="Uniform">
                    </Image>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>

    </ListView>
</Grid>

<GridSplitter Grid.Column="0" />

Источник: http://www.teixeira -soft.com / bluescreen / 2016/03/ 21 / c-how-to-make-a-panel-in-a-datatemplate-fill-the-all-width-of-a-listview-or-itenscontrol-Производное /

Вот что происходит

Как видно из рисунка, ширина изображения вообще не изменяется.Размер изображения остается неизменным даже при изменении размера ListView.Однако, если я установлю ширину Grid внутри DataTemplate, тогда изображение будет фактически следовать этой ширине.

1 Ответ

0 голосов
/ 30 апреля 2019

Похоже, было ошибкой использовать ListView.Изменение всего на ListBox исправило это для меня.

Оставьте это здесь, если кто-то сталкивается с той же проблемой.

<ListBox HorizontalAlignment="Stretch">

    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>
    </ListBox.ItemContainerStyle>

    <ListBox.ItemTemplate>
        <DataTemplate DataType="{x:Type models:PlaylistModel}">
            <Image Source="{Binding ImagePath}"
                       Stretch="Uniform" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...