gpt4 book ai didi

c# - ScrollViewer 在没有固定高度的情况下不显示滚动距离

转载 作者:行者123 更新时间:2023-11-30 21:32:39 25 4
gpt4 key购买 nike

我有以下 XAML。我似乎无法解决的问题是,我有一个滚动查看器,它环绕着一个充满 View 的网格(具有固定高度),但无法让滚动条在超过窗口大小的内容上滚动。

我希望用户控件填满窗口的全部高度,但当网格控件长度的数量大于窗口大小时也可以滚动。但是,如果我不手动设置滚动查看器的高度,那么我将永远不会获得可滚动的滚动条(在示例中手动设置)。

我查看了网站上的其他示例,但找不到有效的答案(包括这个 link)。

XAML:

<UserControl d:DesignWidth="300" d:DataContext="{d:DesignInstance ViewModels:EntityViewModel}">
<StackPanel>
<Label Content=“text” />
<ScrollViewer Height="450" Width="250" VerticalScrollBarVisibility="auto">
<Grid>
<ItemsControl ItemsSource="{Binding Entities}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:EntityView DataContext="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</ScrollViewer>
</StackPanel>
</UserControl>

编辑:
我正在添加一个可以轻松重新创建的附加示例。需要能够使 ScrollView 与停靠面板(可以是网格)一起滚动,其内容比插入用户控件的屏幕所能容纳的内容更多(这意味着我无法固定滚动查看器上的大小)。

<Window Title="MainWindow" Height="200" Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>


<StackPanel Grid.Column="0">
<Label Content="title"/>
<ScrollViewer>
<DockPanel>
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
<Label DockPanel.Dock="Top" Content="title" HorizontalContentAlignment="Center" />
</DockPanel>
</ScrollViewer>
</StackPanel>
</Grid>
</Window>

最佳答案

具有垂直方向的 StackPanel 不限制其子元素的高度。换句话说,除非您明确设置其高度,否则 Scrollviewer 将始终保持显示其全部内容所需的高度。

您必须选择不同的面板,例如网格或 DockPanel:

<UserControl ...>
<DockPanel>
<Label DockPanel.Dock="Top" Content="text"/>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding Entities}">
...
</ItemsControl>
</ScrollViewer>
</DockPanel>
</UserControl>

关于c# - ScrollViewer 在没有固定高度的情况下不显示滚动距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52131307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com