簡體   English   中英

WPF Listview 水平列表

[英]WPF Listview Horizontal List

我在我的 WPF 項目中使用列表視圖。 但是這些項目是水平列出的。 我希望它垂直列出並傳遞到沒有垂直滾動條的第二列。 我怎樣才能做到這一點?

我想做的事:

例子

我的列表視圖代碼:

<ListView Grid.Row="1" x:Name="listviewViews" HorizontalContentAlignment="Stretch" Visibility="Visible"
                                      ScrollViewer.VerticalScrollBarVisibility="Disabled" 
                                      SelectionMode="Single" PreviewMouseRightButtonDown="OnPreviewMouseRightButtonDown" SelectionChanged="listviewViews_SelectionChanged">
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Height="{Binding (FrameworkElement.Height)}"
                           Width="{Binding (FrameworkElement.ActualWidth), 
                    RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
                        ItemWidth="{Binding (ListView.View).ItemWidth, 
                    RelativeSource={RelativeSource AncestorType=ListView}}"
                        MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
                        ItemHeight="{Binding (ListView.View).ItemHeight, 
                    RelativeSource={RelativeSource AncestorType=ListView}}" />
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" Width="190">
                    <Grid HorizontalAlignment="Right" Margin="0 5" VerticalAlignment="Stretch">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition MinWidth="150"/>
                            <ColumnDefinition Width="35"/>
                        </Grid.ColumnDefinitions>
                        <StackPanel Orientation="Horizontal" Grid.Column="0">
                            <TextBlock FontFamily="{StaticResource FontAwesome}" Margin="5 0" VerticalAlignment="Center">
                                <TextBlock.Style>
                                    <Style TargetType="{x:Type TextBlock}">
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding IsDisabled}" Value="True">
                                                <Setter Property="Text" Value="&#xf070;" />
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </TextBlock.Style>
                            </TextBlock>
                            <TextBlock x:Name="txt" Text="{Binding ViewName}" VerticalAlignment="Center" Grid.Column="0"/>
                        </StackPanel>
                        <Button x:Name="btnViewDelete" ToolTip="{DynamicResource Delete}" Click="btnViewDelete_Click" Grid.Column="1">
                            <TextBlock HorizontalAlignment="Right" Text="&#xf1f8;" FontFamily="{StaticResource FontAwesome}" FontSize="12" VerticalAlignment="Center"/>
                        </Button>
                    </Grid>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

通過WrapPanelOrientation屬性控制此行為

<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel Orientation="Vertical" ... />
    </ItemsPanelTemplate>
</ListView.ItemsPanel>

我按照你說的編輯了代碼,但是下面仍然有一行,並且發生了垂直滾動:

截屏

列表視圖代碼:

<ListView Grid.Row="1" x:Name="listviewPools" HorizontalContentAlignment="Stretch" 
                  ScrollViewer.VerticalScrollBarVisibility="Hidden">
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Vertical"
                               Height="{Binding (FrameworkElement.ActualHeight)}"
                               Width="{Binding (FrameworkElement.Width), 
                        RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
                            ItemWidth="{Binding (ListView.View).ItemWidth, 
                        RelativeSource={RelativeSource AncestorType=ListView}}"
                            MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
                            ItemHeight="{Binding (ListView.View).ItemHeight, 
                        RelativeSource={RelativeSource AncestorType=ListView}}" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <Grid HorizontalAlignment="Right" Margin="0 5">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="150"/>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="30"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock x:Name="txt" Text="{Binding PoolName}" VerticalAlignment="Center" Grid.Column="0"/>
                        <Button x:Name="btnFilters" ToolTip="{DynamicResource Filters}" Click="btnFilters_Click" Grid.Column="1">
                            <TextBlock HorizontalAlignment="Right" Text="&#xf0b0;" FontFamily="{StaticResource FontAwesome}" FontSize="12"  VerticalAlignment="Center"/>
                        </Button>
                        <Button x:Name="btnPoolEdit" ToolTip="{DynamicResource Edit}" Click="btnPoolEdit_Click" Grid.Column="2">
                            <TextBlock HorizontalAlignment="Right" Text="&#xf304;" FontFamily="{StaticResource FontAwesome}" FontSize="12"  VerticalAlignment="Center"/>
                        </Button>
                        <Button x:Name="btnPoolDelete" ToolTip="{DynamicResource Delete}" Click="btnPoolDelete_Click" Grid.Column="3">
                            <TextBlock HorizontalAlignment="Right" Text="&#xf1f8;" FontFamily="{StaticResource FontAwesome}" FontSize="12"  VerticalAlignment="Center"/>
                        </Button>
                    </Grid>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM