0

私はそのようにScrollViewerを実装しようとしていました。

<Height="auto" Width="auto"
            MaxHeight="500" MaxWidth="400"
            ResizeMode="NoResize" WindowStyle="None">
        <Grid>
            <StackPanel>
                <ScrollViewer Name="scrlBr">
                    <StackPanel Orientation="Vertical">
                        <TextBlock Name ="txtBlock" Margin="10" Height="auto" 
Width="auto" TextWrapping="Wrap"></TextBlock>
                        <Button Name="btnOk" Click="btnOk_Click" Width="80"
HorizontalAlignment="Center">Close!</Button>
                    </StackPanel>
                </ScrollViewer>
                <Label HorizontalAlignment="Center" FontSize="3" 
Name="lblScrollDown">\/</Label>
            </StackPanel>
        </Grid>
    </Window>

私が抱えている問題は、スクロールバーが無効になっているように見えるのに、テキストが明らかにウィンドウから消えて、が表示されないことbtnOkです。確かに、ウィンドウの高さが固定されていてTextBlockButtonに含まれているScrollviewerとがウィンドウよりも大きい場合は、ScrollBarを有効にする必要があります。

アップデート

問題はScrollViewer内にあることにあることがわかりましたStackPanel。代わりに試してみるかもしれGridません...今後のアップデート。

解決

私はStackpanel問題であることに正しかったし、Heinziの提案に沿って、DockPanelそしてすべての作業をうまく使用することを提案しました。:) ありがとう!

4

3 に答える 3

3

問題はあなたStackPanelです。常に必要なすべての垂直方向のスペースが必要になるため、ScrollPanelのコンテナはウィンドウ自体よりもはるかに大きく、ScrollViewerはスクロールする必要がないと見なします。

解決策:をに置き換えStackPanelますDockPanel<Label>宣言を上部に移動し、DockPanelの下部にドッキングします。DockPanelの最後の子(ScrollViewerこの場合は)は常に残りのスペースを埋めます。

<Grid> 
    <DockPanel> 
        <Label DockPanel.Dock="Bottom" ... Name="lblScrollDown">\/</Label> 
        <ScrollViewer Name="scrlBr"> 
             ...
        </ScrollViewer> 
    </DockPanel> 
</Grid> 
于 2012-06-28T10:08:03.163 に答える
0

多分あなたはこのような何かを書く必要があります

<ScrollViewer Name="scrlBr" VerticalScrollBarVisibility="auto" HorizontalScrollBarVisibility="auto">
...
</ScrollViewer>
于 2012-07-02T11:35:22.780 に答える
0

StackPanelは一方向に無期限に成長するように設計されているため、ScrollViewerからCanContentScrollプロパティをオンに設定し、StackPanelの高さを固定してみてください。Trueまたは、別のパネルを使用してアイテムをスタックすることをお勧めします。

于 2012-06-28T10:17:26.563 に答える