【问题标题】:Get height of all child ListViews获取所有子 ListView 的高度
【发布时间】:2016-02-29 08:42:24
【问题描述】:

所以我有一个带有 StackPanelScrollView。在 StackPanel 中,我有 三个 ListViews 与不同的 List<object>-sources

我想要实现的是禁用 ListViews 上的滚动,并且只在同一个 ScrollView 中滚动它们。

当我硬编码滚动视图的高度时,我得到的东西滚动有点好,但如果我不这样做,它只会在我松开手指后重新开始。我怎样才能获得高度?

当前 XAML:

<Style x:Key="ListViewHeaderDisableScroll" TargetType="ListView">
                <Setter Property="ScrollViewer.VerticalScrollMode" Value="Disabled" />
                <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled" />
                <Setter Property="ScrollViewer.IsVerticalRailEnabled" Value="False" />
            </Style>

        <Page
        x:Class="TestApp.SecondaryView.PatientDetailView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:ViewModels="using:TestApp.ViewModel"    
        mc:Ignorable="d">

        <Page.DataContext>
            <ViewModels:PatientDetailViewModel />
        </Page.DataContext>
        <Grid Background="White">
            <StackPanel Orientation="Vertical">
                /* Menu-Grid*/



                <ScrollViewer VerticalScrollMode="Enabled" VerticalScrollBarVisibility="Hidden" IsVerticalRailEnabled="True" Height="800">
                    <StackPanel Name="StackPanel_Lists">
                        <ListView Style="{StaticResource ListViewHeaderDisableScroll}" ItemsSource="{Binding DummyProblems}" Background="White">
                            <ListView.Header>
                            <StackPanel Style="{StaticResource ListViewHeaderStackPanel}">
                                <TextBlock Text="HEADER 1" FontSize="18" Foreground="White" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
                                <SymbolIcon Symbol="Play" Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,10"/>
                            </StackPanel>
                        </ListView.Header>
                        <ListView.ItemTemplate>
                                <DataTemplate  x:DataType="ViewModels:PatientDetailViewModel">
                                    <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="*"></RowDefinition>
                                        <RowDefinition Height="*"></RowDefinition>
                                    </Grid.RowDefinitions>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"></ColumnDefinition>
                                    </Grid.ColumnDefinitions>
                                    <TextBlock FontSize="20" Grid.Row="0" Foreground="DimGray" Margin="5,5,5,5" Text="{Binding Note}"></TextBlock>
                                    <TextBlock FontSize="15" Grid.Row="1" Foreground="DimGray" Margin="5,5,5,5" Text="{Binding Fo}"></TextBlock>
                                </Grid>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                        </ListView>
                        <ListView Style="{StaticResource ListViewHeaderDisableScroll}" ItemsSource="{Binding DummyMeasures}"  Background="White">
                        <ListView.Header>
                            <StackPanel Background="DarkGray" Orientation="Horizontal" FlowDirection="LeftToRight" Padding="8,8,8,8">
                                <TextBlock Text="HEADER 2" FontSize="18" Foreground="White" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
                                <SymbolIcon Symbol="Play" Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,10"/>
                            </StackPanel>
                        </ListView.Header>
                        <ListView.ItemTemplate>
                            <DataTemplate  x:DataType="ViewModels:PatientDetailViewModel">
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="*"></RowDefinition>
                                        <RowDefinition Height="*"></RowDefinition>
                                    </Grid.RowDefinitions>
                                    <TextBlock FontSize="20" Grid.Row="0" Foreground="DimGray" Margin="5,5,5,5" Text="{Binding Description}"></TextBlock>
                                    <TextBlock FontSize="15" Grid.Row="1" Foreground="DimGray" Margin="5,5,5,5" Text="{Binding Note}"></TextBlock>
                                </Grid>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                        <ListView Style="{StaticResource ListViewHeaderDisableScroll}" ItemsSource="{Binding DummyGoals}"  Background="White">
                        <ListView.Header>
                            <StackPanel Background="DarkGray" Orientation="Horizontal" FlowDirection="LeftToRight" Padding="8,8,8,8">
                                <TextBlock Text="HEADER 3" FontSize="18" Foreground="White" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0"/>
                                <SymbolIcon Symbol="Play" Foreground="White" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,0,10"/>
                            </StackPanel>
                        </ListView.Header>
                        <ListView.ItemTemplate>
                            <DataTemplate  x:DataType="ViewModels:PatientDetailViewModel">
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="*"></RowDefinition>
                                        <RowDefinition Height="*"></RowDefinition>
                                    </Grid.RowDefinitions>
                                    <TextBlock FontSize="20" Grid.Row="0" Foreground="DimGray" Margin="5,5,5,5" Text="{Binding Description}"></TextBlock>
                                    <TextBlock FontSize="15" Grid.Row="1" Foreground="DimGray" Margin="5,5,5,5" Text="{Binding Fo}"></TextBlock>
                                </Grid>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                    </StackPanel>
                </ScrollViewer>
                </StackPanel>
        </Grid>

【问题讨论】:

    标签: xaml listview win-universal-app windows-10-universal


    【解决方案1】:

    所以我发现了这个:

    一切都在外面的 StackPanel 确实毁了一切。我将其更改为 Grid 并制作了 ScrollView *.现在一切正常

    【讨论】:

      猜你喜欢
      • 2015-05-31
      • 2011-10-06
      • 2011-03-22
      • 2021-10-02
      • 2020-08-28
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多