Как получить доступ к свойствам внутри Listvew ItemsPanelTemplate и DataTemplate - PullRequest
0 голосов
/ 26 апреля 2019

Я довольно новичок в c # и WPF. Я делаю небольшой просмотрщик фотографий. Я хочу иметь сетку фотографий, в которой я могу изменить количество столбцов и размер изображений в зависимости от предпочтений пользователя и размера экрана. Я могу делать все, что мне нужно во время разработки, но я не вижу, как изменить некоторые свойства во время выполнения. В частности, мне нужно изменить количество столбцов UniforGrid, а также ширину и высоту изображения.

<ListView x:Name="LVMiniaturasGrandes" Margin="23,10,464,270.5" Background="#FF272727" Foreground="White" Visibility="Hidden" BorderBrush="{x:Null}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid  Columns="4" HorizontalAlignment="Stretch"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ItemsControl Padding="10">
                        <StackPanel Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                            <Image Source="{Binding ImagenGrande2}"  Width="200" Height="200" HorizontalAlignment="Stretch" VerticalAlignment="Top" Stretch="Uniform" />
                            <StackPanel Orientation="Horizontal" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                                <TextBlock Text="{Binding NombreFichero}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Foreground="White" />
                                <TextBlock Text="{Binding VerEstrellas}" Foreground="Red" TextAlignment="Right" HorizontalAlignment="Right" VerticalAlignment="Bottom"/>
                            </StackPanel>
                        </StackPanel>
                    </ItemsControl>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

Я ожидаю, что смогу изменить как количество столбцов, так и высоту и ширину изображений в зависимости от положения элемента управления ползунка и фактического размера пикселя экрана.

Любая помощь приветствуется. Заранее спасибо.

EDIT:

Мне удалось изменить количество столбцов в UniformGrid. Это может быть не очень элегантно, но это работает. Но я все еще не могу получить доступ к ширине и высоте изображений.

private void RejillaImagenesGrandes_Initialized(object sender, EventArgs e)
        {
            _UGImagenesGrandes = (UniformGrid)sender;
        }

Таким образом, я могу получить доступ к UniformGrid и динамически изменять количество столбцов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...