Полоса прокрутки WPF для окна изменяемого размера

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

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

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

Любая справка значительно ценилась бы!

7
задан Greg R 25 February 2010 в 20:44
поделиться

2 ответа

Я предполагаю, что у вас есть проблемы с фиксированной шириной. Если вы предоставите образец своего 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>
13
ответ дан 6 December 2019 в 07:50
поделиться

Вы должны установить HorizontalScrollBarVisibility и VerticalScrollBarVisibility в ScrollViewer на Авто.

Вот пример:

<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.

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

10
ответ дан 6 December 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: