powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / StackPanel\ScrollViewer\Canvas, проблема, схлопывается
4 сообщений из 4, страница 1 из 1
StackPanel\ScrollViewer\Canvas, проблема, схлопывается
    #37710008
dondublon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые форумчане, прошу сильно не ругаться, если вопрос простой. В WPF я относительный новичок.
Требуется сделать следующую конструкцию:
Код: plaintext
1.
2.
3.
<StackPanel Orientation="Vertical">
  <ScrollViewer>
   <Canvas>




При этом ScrollViewer.ActuaHeight схлопывается в ноль. VerticalAlignment=Stretch не помогает. установив MinHeight больше нуля, работает, но высота устанавливается в минимум.

Если убрать один из элементов, вот так:

Код: plaintext
1.
 <ScrollViewer>
   <Canvas>



либо так:
Код: plaintext
1.
<StackPanel Orientation="Vertical">
   <Canvas>





- тогда все работает, как ожидается, ничего не схлопывается.
Почему же ScrollViewer схлопывается в ноль? Кусок XAML полностью:

Код: plaintext
1.
2.
<StackPanel Orientation="Vertical" Grid.Column="0" Background="Red">
            <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Background="Green" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="scrImage" MinHeight="32" >
                <Canvas Name="cnvImage" >
...
Рейтинг: 0 / 0
StackPanel\ScrollViewer\Canvas, проблема, схлопывается
    #37710439
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет никакого смысла в подобной конструкции, тк StackPanel уже содержит ScrollViewer и она равнозначна
<ScrollViewer> <ScrollViewer> <Canvas>
Масло масляное.
StackPanel с вертикальной ориентацией не ограничивает высоту содержимого, ее высота зависит от размеров item'ов, а не наоборот как ты пытешься сделать. Изначально ее высота равна нулю, а посему все и схлопывается.
...
Рейтинг: 0 / 0
StackPanel\ScrollViewer\Canvas, проблема, схлопывается
    #37710444
dondublon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Прошу прощения, тогда я не понимаю.
Canvas, который внутри, у меня может быть довольно большим и должен уметь скроллится по вертикали и горизонтали. Типа картинки в граф. редакторе при большом увеличении.

Непонятка 1: Если я делаю без ScrollViewer-а, то скроллбаров у меня нет. Как их тогда обеспечить?
Непонятка 2. Внешнее окно может быть небольшим. Если, как вы говорите, размер StackPanel сам зависит от итемов, тогда вопрос - (непонятка 2.1) почему конструкция <StackPanel><Canvas> - даёт канвасу развернуться по вертикали в размер StackPanel и (непонятка 2.2) Размер StackPanel у меня же не меняется при изменении размера канваса(при <StackPanel><Canvas>).

P.S. если надо, могу сделать и выложить скриншоты, но, вроде, вы уже и так поняли.
...
Рейтинг: 0 / 0
StackPanel\ScrollViewer\Canvas, проблема, схлопывается
    #37710508
dondublon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблему решил.
Вместо stackpanel надо так:
[XML]<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>[/XML]
Тулбар сверху, в секции "*" размещается ScrollViewer с канвасом.
Всем спасибо!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / StackPanel\ScrollViewer\Canvas, проблема, схлопывается
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]