8

これは非常に単純な作業のはずですが、何らかの理由で WPF で多くの問題に遭遇しています。

これが私が実現したいことです。ウィンドウには、エキスパンダー コントロールを含む多数のコントロールがあります。コンテンツが表示領域の下に拡大するときに、そのウィンドウにスクロール バーが必要です。また、ウィンドウは固定幅ではなく、最大化、サイズ変更などが可能です。

ウィンドウの最初の要素として ScrollViewer を配置しようとしましたが、正しく動作しません。高さと幅を自動に設定するとスクロールせず、特定の拘束に設定すると、ウィンドウが最大化されたときにボックスが作成されます。

どんな助けでも大歓迎です!

4

2 に答える 2

16

固定幅の問題があると仮定しています。XAML のサンプルを提供していただければ、さらにサポートできるかどうかを確認できます。以下は、ボックスを表示せずに機能します。

<Window x:Class="WpfSample1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <ScrollViewer>
        <StackPanel>
            <Rectangle Height="400" Width="400" Fill="Red" Margin="10" />
            <Rectangle Height="400" Width="400" Fill="Green" Margin="10" />
            <Rectangle Height="400" Width="400" Fill="Blue" Margin="10" />
            <Rectangle Height="400" Width="400" Fill="Yellow" Margin="10" />
        </StackPanel>
    </ScrollViewer>
</Window>
于 2010-02-25T21:10:31.993 に答える
11

ScrollViewer の Horizo​​ntalScrollBarVisibility と VerticalScrollBarVisibility を Auto に設定する必要があります。

次に例を示します。

<Grid>
    <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
        <Canvas Width="400" Height="400">
            <Button Canvas.Left="300">Left 300</Button>
            <Button Canvas.Top="300">Top 300</Button>
        </Canvas>
    </ScrollViewer>
</Grid>

これにより、VS によって生成されたメイン ウィンドウのコンテンツが置き換えられます。

実行してウィンドウのサイズを変更し、最大化すると、スクロール バーが表示されたり消えたりします。

于 2010-02-25T21:11:23.667 に答える