|
Нужна помощь! Сложный UI: векторная графика, viewbox и проблема ввода
|
|||
---|---|---|---|
#18+
Приветствую участников, предыстория: когда мне нужно создать сложный UI, я использую Corel Draw. Например, в окне нужно отобразить сложную схему, т.е. не просто набор стандартных контролов, а множество геометрических фигур. Схема сложная, а в корэле рисуется легко. Потом я ее экспортирую в SVG, и с помощью программы SvgToXaml перевожу во вьюшку. Подход работал на ура. Вся анимация - запросто, на любой объект (в xaml это Path) можно навесить события, менять (из ViewModel) видимость объектов и пр. Получается красивый, насыщенный, яркий UI, не уступающий флэшу. И да, Canvas со всей этой красотой я помещаю во ViewBox, т.е. еще и идеальное масштабирование получается. Но появилась одна проблема. В общем, один лист A4 в кореле на выходе дает огромный Canvas (примерно 21.000x29.000 пикселей). Если делать меньше, то видно как растрируются кривые (особенно в местах скруглений, у стрелок например - прямо видно "мусор" из пикселей). ViewBox как бы решает эту проблему, без разницы, какой исходный размер - покажет как надо. НО! Я не могу "вклеить" в этот UI стандартные контролы. Например, в некоторых местах схемы есть квадратики, нужно, чтобы в них можно было вписывать текст. Когда я пытаюсь туда вставить TextBox, с учетом изначального размера Canvas, он получается тоже огромным, сотни и тысячи пикселей. Даже если задать ему максимальный размер шрифта, текст практически не видно при таких масштабах. Что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 11:22 |
|
Нужна помощь! Сложный UI: векторная графика, viewbox и проблема ввода
|
|||
---|---|---|---|
#18+
TopSpace, а) разместить TextBlock над ViewBox б) размещать элементы управления не относительно масштабирования, а с помощью панелей размещения Grid, Canvas и так далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 11:31 |
|
Нужна помощь! Сложный UI: векторная графика, viewbox и проблема ввода
|
|||
---|---|---|---|
#18+
Roman Mejtes, 1. так окно может меняться в размерах, ViewBox при этом будет содержимое масштабировать, естественно: двигать, менять размеры. Как мне при этом, находясь вне ViewBox, пододвигать TextBox'ы к нужным точкам объектов внутри ViewBox? 2. Не понял, как это сделать. Если TextBox'ы живут вне ViewBox'а, я их конечно могу поместить в любой контейнер, grid и пр., только связи ведь никакой не будет с тем, что происходит внутри ViewBox (см. п.1). Как вариант, если побороть растрирование геометрии, я бы сделал Canvas размером 800*600 (к примеру), и туда бы хорошо легли TextBox'ы. Я не понимаю, как абсолютные размеры Canvas и объектов Path в нем могут вообще влиять на качество картинки, это ж векторная графика. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 13:02 |
|
Нужна помощь! Сложный UI: векторная графика, viewbox и проблема ввода
|
|||
---|---|---|---|
#18+
все еще актуально( ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 11:17 |
|
Нужна помощь! Сложный UI: векторная графика, viewbox и проблема ввода
|
|||
---|---|---|---|
#18+
TopSpace, для того, чтоб у вас всё так круто было, нужно делать свой Shape и он уже будет растягиваться без изменения размера кисти, при этом объекты будут нормально размещаться и так далее. через ViewBox вы не сделайте то, что хотите, это невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2015, 13:16 |
|
|
start [/forum/topic.php?fid=21&fpage=17&tid=1440882]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 261ms |
total: | 403ms |
0 / 0 |