Как заставить ширину и высоту отражать ScaleTransform и как ScaleTransform, задавая высоту и ширину? - PullRequest
1 голос
/ 10 сентября 2009

У меня проблема с использованием ScaleTransform для Canvas в Silverlight, Canvas корректно масштабируется, однако значения высоты и ширины всегда остаются неизменными.
например Canvas 100x100 масштабируется таким образом, что 200x200 по-прежнему равен 100x100 в отношении значений высоты и ширины, как их можно обновить, чтобы отразить новый размер.

Еще одна связанная с этим проблема заключается в том, как изменить высоту и ширину элемента и правильно настроить для этого элемента Scale элемент Canvas или XAML, т.е. установка элемента 100x100 на 200x200 делает все в нем в два раза больше - это должно быть решением, когда только высота и ширина элемента установлены для изменения масштаба.

Эти вопросы относятся к одной и той же проблеме - надеюсь, есть решение, которое работает в Silverlight 3.0


Высота и ширина должны быть обновлены так, чтобы, когда этот холст находился в ScrollViewer, полоса прокрутки корректно обновлялась для нового размера - это происходит, если высота и ширина назначаются вручную для нового масштабированного размера, но это должно работать для всех размеров.
Наоборот, мне нужно иметь другой холст, чтобы при изменении его высоты и ширины элементы внутри соответствующим образом масштабировались, так как это будет иконка с изменяемым размером для использования на том же или другом холсте.


Если это невозможно в Silverlight напрямую, есть ли в любом случае достижение этого эффекта в коде, если не в XAML, как это возможно в WPF, если используется ImageBrush, однако Silverlight не поддерживает это и нуждается в масштабируемом холсте, и холст, который при масштабировании обновляет собственную высоту и ширину.

1 Ответ

2 голосов
/ 10 сентября 2009

UIElement не знает ни о каком преобразовании, примененном к нему. Поэтому его свойства ширины и высоты не могут отражать преобразование.


Один из вариантов - вообще не использовать преобразование, а использовать ViewBox (из набора инструментов silverlight)

Окно просмотра масштабирует его содержимое, чтобы оно всегда заполняло окно просмотра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...