Scrollviewer 滚动条未显示且需要显示
Scrollviewer scrollbars not showing and needs to
为什么下面的XAML没有出现滚动条?
<Window x:Class="GridViewsToImagePocApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlna:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Title="MainWindow" Height="600" Width=800">
<StackPanel>
<ScrollViewer IsEnabled="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<StackPanel>
<telerik:RadGridView x:Name="GridView1" AutoGenerateColumns="True" />
<telerik:RadGridView x:Name="GridView2" AutoGenerateColumns="True" Margin="0 15 0 0" />
<telerik:RadGridView x:Name="GridView3" AutoGenerateColumns="True" Margin="0 15 0 0" />
<telerik:RadGridView x:Name="GridView4" AutoGenerateColumns="True" Margin="0 15 0 0" />
<telerik:RadGridView x:Name="GridView5" AutoGenerateColumns="True" Margin="0 15 0 0" />
</StackPanel>
</ScrollViewer>
</StackPanel>
</Window>
外层 StackPanel
是问题所在。它以正无穷大(Vertical
Orientation
方向的高度或 Horizontal
方向的宽度测量其子项。因此 ScrollViewer
不受任何限制,因此它会扩展以适应其内容并且不需要显示任何滚动条。
根据您的要求使用 panel that restricts the size of the ScrollViewer
to the available space instead, like Grid
, UniformGrid
or DockPanel
。
<Grid>
<ScrollViewer CanContentScroll="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<StackPanel>
<!-- ...your content. -->
</StackPanel>
</ScrollViewer>
</Grid>
为什么下面的XAML没有出现滚动条?
<Window x:Class="GridViewsToImagePocApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlna:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Title="MainWindow" Height="600" Width=800">
<StackPanel>
<ScrollViewer IsEnabled="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<StackPanel>
<telerik:RadGridView x:Name="GridView1" AutoGenerateColumns="True" />
<telerik:RadGridView x:Name="GridView2" AutoGenerateColumns="True" Margin="0 15 0 0" />
<telerik:RadGridView x:Name="GridView3" AutoGenerateColumns="True" Margin="0 15 0 0" />
<telerik:RadGridView x:Name="GridView4" AutoGenerateColumns="True" Margin="0 15 0 0" />
<telerik:RadGridView x:Name="GridView5" AutoGenerateColumns="True" Margin="0 15 0 0" />
</StackPanel>
</ScrollViewer>
</StackPanel>
</Window>
外层 StackPanel
是问题所在。它以正无穷大(Vertical
Orientation
方向的高度或 Horizontal
方向的宽度测量其子项。因此 ScrollViewer
不受任何限制,因此它会扩展以适应其内容并且不需要显示任何滚动条。
根据您的要求使用 panel that restricts the size of the ScrollViewer
to the available space instead, like Grid
, UniformGrid
or DockPanel
。
<Grid>
<ScrollViewer CanContentScroll="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<StackPanel>
<!-- ...your content. -->
</StackPanel>
</ScrollViewer>
</Grid>