Полоса прокрутки WPF для изменяемого размера окна - PullRequest
7 голосов
/ 25 февраля 2010

Это должно быть очень простым заданием, но по какой-то причине у меня много проблем с ним в WPF.

Вот чего я хочу: У меня есть куча элементов управления в окне, включая элементы управления экспандера. Я хочу иметь полосы прокрутки для этого окна, когда содержимое расширяется ниже видимой области. Кроме того, окно не имеет фиксированной ширины, его можно развернуть, изменить его размер и т. Д.

Я попытался поместить ScrollViewer в качестве первого элемента в окне, но он работает неправильно. Если я устанавливаю высоту и ширину на Авто, он не прокручивается, а если я устанавливаю специальные ограничения, он создает окно, когда окно развернуто.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

12 голосов
/ 26 февраля 2010

Я предполагаю, что у вас есть проблемы с фиксированной шириной. Если вы предоставите образец своего 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>
10 голосов
/ 26 февраля 2010

Вы должны установить для HorizontalScrollBarVisibility и VerticalScrollBarVisibility ScrollViewer значение 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.

Запустите его и измените размер окна, разверните его, и вы будете появляться и исчезать полосы прокрутки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...