3

我有一个 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)?谢谢,

4

1 回答 1

4

找到了 ...

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions> 

并从 ScollViewer 中删除高度

于 2013-02-24T19:49:38.570 回答