Как выровнять содержимое внутри ListView ItemTemplate вправо? - PullRequest
0 голосов
/ 31 августа 2018

Вот разметка, которая не делает то, что я хочу:

<DockPanel LastChildFill="True" Width="Auto">
    <ToolBar DockPanel.Dock="Top">
        <!-- Menu bar -->
    </ToolBar>

    <ListView ItemsSource="{Binding BrandsCollectionProp}" ScrollViewer.HorizontalScrollBarVisibility="Auto" BorderThickness="0" DockPanel.Dock="Bottom" HorizontalAlignment="Stretch">
        <ListView.ItemTemplate>
            <DataTemplate>

                    <DockPanel LastChildFill="True">
                        <Image Height="150" DockPanel.Dock="Left" Source="{Binding Img}" Margin="0,0,5,0"/>
                        <!-- Push this to right side of the windows -->
                        <StackPanel DockPanel.Dock="Right" Orientation="Horizontal" HorizontalAlignment="Stretch">
                            <TextBlock FontSize="24">adqwewqeqwdddd</TextBlock>
                        </StackPanel>
                        <StackPanel Orientation="Vertical" Margin="0,0,5,0">
                            <TextBlock MaxWidth="700" TextWrapping="Wrap"><Run Text="{Binding Title}"/></TextBlock>
                            <TextBlock TextWrapping="Wrap" TextAlignment="Right" Text="{Binding Time}"></TextBlock>
                            <TextBlock TextWrapping="Wrap" TextAlignment="Right" MaxWidth="700" Text="{Binding Text}"></TextBlock>
                        </StackPanel>
                    </DockPanel>

            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</DockPanel>

Изображение, показывающее, что у меня есть в данный момент и чего я пытаюсь достичь

С Grid без компонента ListView я могу делать почти так же, как я хочу.

Код с сеткой без ListView:

<DockPanel>
<Grid DockPanel.Dock="Bottom">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <DockPanel Margin="0,2" LastChildFill="True">
            <Image Height="150" DockPanel.Dock="Left" Source="http://playua.net/pu-content/uploads/2018/08/aa56b1443c1d5362dbf195ba82228c8f-250x215.jpg" Margin="0,0,5,0"/>
            <StackPanel Orientation="Vertical" Margin="0,0,5,0">
                <TextBlock MaxWidth="700" TextWrapping="Wrap" TextAlignment="Left" FontSize="20" FontWeight="UltraBlack" Margin="0,0,0,5"><Run Text="PEGI планує додати на носії напис «У грі присутні мікроплатежі»"/></TextBlock>
                <TextBlock TextWrapping="Wrap" TextAlignment="Right" FontSize="18" FontWeight="ExtraLight" FontFamily="Fantasque Sans Mono" FontStretch="ExtraCondensed" Margin="0,0,0,5" MaxWidth="700" Text="adasdqwewqewqewqewqeqw wqeqw ewq "></TextBlock>
            </StackPanel>
        </DockPanel>

        <StackPanel Grid.Column="1" Orientation="Vertical" HorizontalAlignment="Stretch">
            <TextBlock MinWidth="200" FontSize="40" FontFamily="Georgia" FontStretch="UltraExpanded" TextAlignment="Center">Серпень</TextBlock>
            <TextBlock TextAlignment="Center" FontSize="20">12</TextBlock>
            <TextBlock TextAlignment="Center">2018</TextBlock>
        </StackPanel>
    </Grid>
</DockPanel>

1 Ответ

0 голосов
/ 31 августа 2018

Необходимо установить свойство ItemContainerStyle, чтобы изменить выравнивание ContentControl.

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ListView.ItemContainerStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...