powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / PageScrollViewer и масшатбирование его содержимого
1 сообщений из 1, страница 1 из 1
PageScrollViewer и масшатбирование его содержимого
    #37439837
spandex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

На странице имеется PageScrollViewer, в нем Frame, в нем StackPanel.
Также на странице имеется ползунок (для Zoom содержимого StackPanel).

Я хочу чтобы при изменении ползунка менялся масштаб отображения в StackPanel.
В принципе он меняется (с помощью RenderTransform).
Код: plaintext
1.
2.
3.
CompositeTransform ct = new CompositeTransform();
ct.ScaleX = this.sliderZoom.Value;
ct.ScaleY = this.sliderZoom.Value;
this.StackPanel1.RenderTransform = ct;

Но приходится вручную еще менять размер самого StackPanel1 чтобы появлялись полосы прокрутки у PageScrollViewer.
Иначе их просто нет и прокрутить содержимое просто невозможно.

Код: plaintext
1.
2.
3.
4.
if (StackWidth == 0) StackWidth = this.StackPanel1.RenderSize.Width;
if (StackHeight == 0) StackHeight = this.StackPanel1.RenderSize.Height;

this.StackPanel1.Width = StackWidth * this.sliderZoom.Value;
this.StackPanel1.Height = StackHeight * this.sliderZoom.Value;


Все как бы сносно при значениях ScaleX и ScaleY >= 1.
А вот если масштаб меньше 1, то вычисляемая ширина не совпадает масштабу StackPanel1.

Такое ощущение что ScaleX = 0.1 не равно 10% размера от первоначального значения.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / PageScrollViewer и масшатбирование его содержимого
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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