ScrollViewer и смещение контента

215
21 декабря 2018, 23:30

StackPanel обернут в ScrollViewer и при появлении скролла , смещается контент внутри StackPanel

Нужно чтобы контент не смещался. Что можно сделать в этом случае ?

<ScrollViewer Name="scroll" VerticalScrollBarVisibility="Hidden">
    <ScrollViewer.Resources>
        <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">5</sys:Double>
    </ScrollViewer.Resources>
    <StackPanel Name="kontejner">
    </StackPanel>
</ScrollViewer>

В StackPanel программно добавляю такие textblock

TextBlock textBlock = new TextBlock();
textBlock.MinHeight = 20;
textBlock.TextWrapping = TextWrapping.Wrap;
textBlock.VerticalAlignment = VerticalAlignment.Center;
textBlock.Margin = new Thickness(10, 5, 10, 5);

Scroll появляется так:

    private void Window_MouseMove(object sender, MouseEventArgs e)
    {
        if (KontejnerSoobshchenij.ActualHeight > scroll.ViewportHeight)
        {
            scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
        }
    }

Пояснение:

Сколл появляется при наведении мышки на окно и нужно, чтобы он не изменял ширину TextBlock-ов

Answer 1

Если вы установите у StackPanel фиксированную ширину, а родительская панель будет выделять столько места, сколько у нее просят, то получится как раз поведение которое вам нужно:

<Grid Margin="5">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <ScrollViewer VerticalScrollBarVisibility="Auto">
        <StackPanel Width="100">
            <TextBlock Text="{Binding ElementName=tb, Path=Text}"
                       TextWrapping="Wrap"/>
        </StackPanel>
    </ScrollViewer>
    <TextBox Grid.Column="1" Name="tb" AcceptsReturn="True"/>
</Grid>

READ ALSO
Аналог PtrToStructure для классов

Аналог PtrToStructure для классов

Товарищи, стал мне интересен следующий вопрос:

301
Сортировка Dictionary по Key в алфавитном порядке

Сортировка Dictionary по Key в алфавитном порядке

Есть словарь Dictionary<string, int>,как можно отсортировать элементы словаря для вывода в консоль по Key в алфавитном порядке по возрастанию(от "a" до "z") без...

248
Unity - Перемещение UI объектов мышкой

Unity - Перемещение UI объектов мышкой

Как можно реализовать перемещение объектов UI мышкой? Например в инвентаре есть 2 слота, нужно из первого переместить объект во второй слот

344