我有一个 ScrollViewer,其中包含很多内容(数据网格、堆栈面板、文本框、标签等......),在它之外我想添加一个按钮(PRINT),重要的是按钮不是滚动查看器。我的目标是屏幕的顶部 90% 是滚动查看器,底部 10% 是始终显示 PRINT 按钮的“冻结面板”,并且在最大化和最小化时应该保持不变。
在遇到“属性内容设置不止一次”的问题后,我意识到我需要将我的 ScrollViewer 和 Button 添加到另一个容器中,到目前为止,似乎唯一可行的是 GRID - 但老实说,在你阅读之后如果你还有什么要推荐的,我愿意接受建议,我只使用了 GRID,因为它似乎几乎给了我想要的东西。
这是我现在的代码:
[Code]
<Window DataContext="{Binding PrintView, Source={StaticResource Locator}}" Width="900">
<Grid Height="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer Name="PrintView" Grid.Row="0" Height="Auto">
<StackPanel>
... a LOT of stuff ...
</StackPanel>
</ScrollViewer>
<Button Content="Print"
Margin="0,20,0,20"
Height="50"
Width="150"
FontSize="24"
FontWeight="Bold"
Grid.Row="1"
/>
</Grid>
</Window>
[Code]
当这样完成时,我的 ScrollViewer 没有滚动条,所以我看到了第一页,但我无法向下滚动,也没有看到 PRINT 按钮一个有趣的测试是更改以下内容:
<ScrollViewer Name="Apercu" Grid.Row="0" Height="600">
现在我再次看到我的滚动条(我可以滚动)并且我的 PRINT 按钮在它下方并且始终可见(这几乎是完美的)但是当我最大化我的窗口时,ScrollViewer 保持 600 的高度,因此它实际上并没有最大化(打印按钮下方的所有内容都是白色的)。
有任何想法吗?有没有另一种方法可以指定我的高度,或者我应该使用不同的控件(不是 GRID)?谢谢,