xaml - 如何在 UWP 中垂直调整水平 listView

标签 xaml uwp

我是 UWP 开发新手。现在我只是实现一个水平listView。这是我的代码:

<Grid Background="{StaticResource DefaultBackground}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <StackPanel Height="100" Grid.Row="0"/>

    <controls:TestListView Grid.Row="1" x:Name="MyListView" IsItemClickEnabled="False" ItemsSource="{x:Bind Folders}" Margin="10,0,10,0"
                                ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Auto">
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="model:TestClass">
                <controls:TestControl/>
            </DataTemplate>
        </ListView.ItemTemplate>
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="VerticalContentAlignment" Value="Top"/>
                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                <Setter Property="Width" Value="270"/>
                <Setter Property="HorizontalAlignment" Value="Left"/>
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal" VerticalAlignment="Stretch"  ScrollViewer.HorizontalScrollMode="Auto" ScrollViewer.VerticalScrollMode="Disabled"/>
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
    </controls:TestListView>

</Grid>

我希望 MyListView 占据所有垂直空间。请注意,TestControl(UserControl) 是另一个ListView。它可能包含大量元素。最终的结果是MyListView的高度等于所有TestControl中最大的高度。我希望 TestControl 应该显示一个滚动条,而不是仅仅垂直显示一个长列表,但它没有。

那么如何让所有TestControl的高度自适应 UWP 应用程序?

最佳答案

终于,我得到了我想要的。只需进行以下更改,一切都很好。

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="VerticalContentAlignment" Value="Stretch" />
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        <Setter Property="Width" Value="270" />
        <Setter Property="HorizontalAlignment" Value="Left" />
    </Style>
</ListView.ItemContainerStyle>
<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <ItemsStackPanel Orientation="Horizontal" 
                         VerticalAlignment="Stretch"  
                         ScrollViewer.HorizontalScrollMode="Auto" 
                         ScrollViewer.VerticalScrollMode="Disabled" />
    </ItemsPanelTemplate>
</ListView.ItemsPanel>

关于xaml - 如何在 UWP 中垂直调整水平 listView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44029303/

相关文章:

c# - 制作自己的 Windows 8 应用程序主题

ios - iOS 上的 Xamarin.Forms ListView ViewCell 问题

c# - 如何在ControlTemplate中绑定(bind)ComboBox的ItemsSource?

android - 你如何管理你的 Assets ?

silverlight - 如何在 Silverlight 中创建带边框的表格?

c# - 如何在作为 List<string> 的 ObservableCollection 绑定(bind)属性(到 ListView)上调用 String.Join

c# - 在 XAML 堆栈布局中插入 cs stacklayout

c# - UWP MediaPlayerElement - 如何循环/重复 mp4

c# - (UWP) mediaElement 导致错误 :unsupport video type or invalid file path

.net - OxyPlot 无法在 Xamarin Forms UWP 中呈现