| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > StackPanel\ScrollViewer\Canvas |
| Автор: agitprop 17.3.2012, 16:51 | ||||||||
| Уважаемые форумчане, прошу сильно не ругаться, если вопрос простой. В WPF я относительный новичок. Требуется сделать следующую конструкцию:
При этом ScrollViewer.ActuaHeight схлопывается в ноль. VerticalAlignment=Stretch не помогает. установив MinHeight больше нуля, работает, но высота устанавливается в минимум. Если убрать один из элементов, вот так:
либо так:
- тогда все работает, как ожидается, ничего не схлопывается. Почему же ScrollViewer схлопывается в ноль? Кусок XAML полностью:
|
| Автор: dextermd 18.3.2012, 21:16 |
| А в чем заключается задача ? |
| Автор: exBlender 19.3.2012, 00:54 |
| Если ScrollViewer помещается внутрь вертикальной StackPanel, его высота по умолчанию становится равной "0"(внутри горизонтальной StackPanel равной "0 становится ширина). Высота Canvas по умолчанию также становится равной "0". Подобная конструкция будет работать, если ScrollViewer-у задана высота, например 200, а Canvas-у задана б0льшая высота, например, 300. Или нужно поменять StackPanel на другой тип панели, например, Grid. |
| Автор: agitprop 19.3.2012, 07:20 |
| Большое спасибо за ответы, задачу решил. Задача, вообще заключалась в слудеющем: окно фиксированного размера, сверху - тулбар, внизу - канвас с большом (в общем случае) картинкой-схемой, которая должна скроллиться по вертикали и горизонтали. Надо было делать так (пишу в сокращении): <Grid> <Grid.RowDefinitions> <RowDefinition height="Auto"> <RowDefinition height="*"> В секции "Auto" - тулбар, в секции "*" - канвас. |