Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StackPanel\ScrollViewer\Canvas, проблема, схлопывается 
:(
    Опции темы
agitprop
Дата 17.3.2012, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.3.2012

Репутация: нет
Всего: нет



Уважаемые форумчане, прошу сильно не ругаться, если вопрос простой. В WPF я относительный новичок.
Требуется сделать следующую конструкцию:
Код

<StackPanel Orientation="Vertical">
  <ScrollViewer>
   <Canvas>


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

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

Код

  <ScrollViewer>
   <Canvas>


либо так:
Код

<StackPanel Orientation="Vertical">
   <Canvas>


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

Код

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


PM MAIL   Вверх
dextermd
Дата 18.3.2012, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 21.6.2008

Репутация: нет
Всего: нет



А в чем заключается задача ?
PM MAIL   Вверх
exBlender
Дата 19.3.2012, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 2.10.2009

Репутация: 9
Всего: 9



Если ScrollViewer помещается внутрь вертикальной StackPanel,  его высота по умолчанию становится равной "0"(внутри горизонтальной StackPanel  равной "0 становится ширина). Высота Canvas по умолчанию также становится  равной "0".
Подобная конструкция будет работать, если ScrollViewer-у задана высота, например 200, а Canvas-у задана б0льшая высота, например, 300. Или нужно поменять StackPanel на другой тип панели, например, Grid.
--------------------
HTML и CSS забыв как страшный сон, хвалу я заммэлу пою и фирме Майкрософт.
PM MAIL   Вверх
agitprop
Дата 19.3.2012, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 17.3.2012

Репутация: нет
Всего: нет



Большое спасибо за ответы, задачу решил.
Задача, вообще заключалась в слудеющем: окно фиксированного размера, сверху - тулбар, внизу - канвас с большом (в общем случае) картинкой-схемой, которая должна скроллиться по вертикали и горизонтали.
Надо было делать так (пишу в сокращении):
<Grid>
 <Grid.RowDefinitions>
   <RowDefinition height="Auto">
   <RowDefinition height="*">

В секции "Auto" - тулбар, в секции "*" - канвас.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.