[WPF] Не работает скроллинг в ScrollViewer
От: skodnik  
Дата: 27.12.10 12:30
Оценка:
Есть Grid, в нем есть ячейка которая может увеличиваться сплиттерами. В этой ячейке есть такой контент:

<ScrollViewer Grid.Column="2" HorizontalScrollBarVisibility="Visible">
                <Canvas x:Name="layoutCanvas" Background="AliceBlue">
                    <Image Source="stuff/samplebg.png"></Image>
                </Canvas>
            </ScrollViewer>

так вот картинка по своему размеру больше чем размер Grid.Column="2", но скроллинг не появляется. What I do wrong?
Re: [WPF] Не работает скроллинг в ScrollViewer
От: Аноним  
Дата: 27.12.10 13:33
Оценка:
Здравствуйте, skodnik, Вы писали:

S>Есть Grid, в нем есть ячейка которая может увеличиваться сплиттерами. В этой ячейке есть такой контент:


S>
S><ScrollViewer Grid.Column="2" HorizontalScrollBarVisibility="Visible">
S>                <Canvas x:Name="layoutCanvas" Background="AliceBlue">
S>                    <Image Source="stuff/samplebg.png"></Image>
S>                </Canvas>
S>            </ScrollViewer>
S>

S>так вот картинка по своему размеру больше чем размер Grid.Column="2", но скроллинг не появляется. What I do wrong?

Не прав ты в том, что был использован Canvas. Данный элемент не устанавливает свой размер
по размерам входящих элементов, он устанавливает размер в тот, что ему позволят его контейнер.
Поэтому полосы прокрутки не появляются. Либо замени Canvas, либо выстави ему руками Widht & Height
Re[2]: [WPF] Не работает скроллинг в ScrollViewer
От: skodnik  
Дата: 27.12.10 13:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, skodnik, Вы писали:


S>>Есть Grid, в нем есть ячейка которая может увеличиваться сплиттерами. В этой ячейке есть такой контент:


S>>
S>><ScrollViewer Grid.Column="2" HorizontalScrollBarVisibility="Visible">
S>>                <Canvas x:Name="layoutCanvas" Background="AliceBlue">
S>>                    <Image Source="stuff/samplebg.png"></Image>
S>>                </Canvas>
S>>            </ScrollViewer>
S>>

S>>так вот картинка по своему размеру больше чем размер Grid.Column="2", но скроллинг не появляется. What I do wrong?

А>Не прав ты в том, что был использован Canvas. Данный элемент не устанавливает свой размер

А>по размерам входящих элементов, он устанавливает размер в тот, что ему позволят его контейнер.
А>Поэтому полосы прокрутки не появляются. Либо замени Canvas, либо выстави ему руками Widht & Height
А если мне надо чтобы Canvas имел размеры Image который в нем. Как прибиндить?
Re[3]: [WPF] Не работает скроллинг в ScrollViewer
От: skodnik  
Дата: 27.12.10 13:55
Оценка:
Здравствуйте, skodnik, Вы писали:
S>А если мне надо чтобы Canvas имел размеры Image который в нем. Как прибиндить?
Уже нашел:


 <Canvas x:Name="layoutCanvas" Background="AliceBlue" Width="{Binding ElementName=bgImage, Path=ActualWidth}" Height="{Binding ElementName=bgImage, Path=ActualHeight}">
                    <Image x:Name="bgImage" Source="stuff/samplebg.png"></Image>
                </Canvas>
Re[4]: [WPF] Не работает скроллинг в ScrollViewer
От: Codechanger Россия  
Дата: 27.12.10 17:10
Оценка:
Здравствуйте, skodnik, Вы писали:

S>Здравствуйте, skodnik, Вы писали:

S>>А если мне надо чтобы Canvas имел размеры Image который в нем. Как прибиндить?
S>Уже нашел:


S>
S> <Canvas x:Name="layoutCanvas" Background="AliceBlue" Width="{Binding ElementName=bgImage, Path=ActualWidth}" Height="{Binding ElementName=bgImage, Path=ActualHeight}">
S>                    <Image x:Name="bgImage" Source="stuff/samplebg.png"></Image>
S>                </Canvas>
S>


На самом деле есть решение попроще
Re[5]: [WPF] Не работает скроллинг в ScrollViewer
От: skodnik  
Дата: 28.12.10 07:41
Оценка:
Здравствуйте, Codechanger, Вы писали:

C>На самом деле есть решение попроще

В студию!
Re[6]: [WPF] Не работает скроллинг в ScrollViewer
От: Codechanger Россия  
Дата: 28.12.10 08:01
Оценка:
Здравствуйте, skodnik, Вы писали:

S>Здравствуйте, Codechanger, Вы писали:


C>>На самом деле есть решение попроще

S>В студию!

<Grid>
<ScrollViewer>
<Grid>
<Image Stretch="None" Source="Тут большая картинка">
</Image>
<Border BorderBrush="Red" BorderThickness="5">
<Canvas Name="canvas">
<TextBlock Canvas.Left="500" Canvas.Top="1000" Text="{Binding ElementName=canvas,Path=ActualHeight}" Foreground="Red"/>
</Canvas>
</Border>

</Grid>
</ScrollViewer>
</Grid>

Вот так Canvas растянется на весь размер Image.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.