可能有人问过,但无法找到确切的问题。
基本上我有一个WPF窗口用作表单。现在,对于表单,我有一个StackPanel,可以帮助保持所有控件和标签。
如果用户的分辨率较低,则窗口大小会较慢,例如800x600。有些控件丢失了。
为此,我添加了一个围绕StackPanel的ScrollViewer。但ScrollViewer永远不会激活。它可能与stackpanel有关,我猜想它永远不会受到限制。但是,如果用户调整窗口大小,或者窗口(打开时)无法正确显示所有内容,如何激活滚动查看器?
我不认为必须把我的xaml放在这里,但如果你需要它让我知道。谢谢!
答案 0 :(得分:1)
StackPanel
具有无限大小(不尊重其父界限),因此您应将其包裹在Grid
中,而ScrollViewer
又位于{{1}}内。
答案 1 :(得分:0)
这可能对您有所帮助
<StackPanel Orientation="Vertical">
<ScrollViewer Name="scrollViewer1">
<DataGrid Name="dgDataList" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="View" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
//control like textblock, image etc
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
<ScrollViewer Name="scrollViewer2" >
<DataGrid Name="dgDataList2" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTemplateColumn Header="View" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
//control like textblock, image etc
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</StackPanel>
答案 2 :(得分:0)
我遇到了类似的问题,即使屏幕上有隐藏的内容,也没有显示水平滚动条。
<Window x:Class="WPFTestingPlatform.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="{Binding SystemParameters.PrimaryScreenHeight}"
Width="{Binding SystemParameters.PrimaryScreenWidth}"
ResizeMode="CanResizeWithGrip">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel Width="1248" Height="600">
<TextBlock HorizontalAlignment="Right">Right</TextBlock>
</StackPanel>
</ScrollViewer>
</Window>
将窗口设置为您想要的窗口大小。同时设置Stackpanel大小,使其整齐地适合您的所有内容。
窗口大小不如设置StackPanel高度/宽度那么重要,否则StackPanel将从窗口继承它的大小。
您可以调整此窗口的大小,滚动条将显示/消失(如果设置了ResizeMode="CanResizeWithGrip"
)。如果您未设置HorizontalScrollBarVisibility
,则无论内容大小如何,滚动查看器都不会显示水平滚动条。