Рисование нескольких контуров на холсте - PullRequest
1 голос
/ 22 июня 2011

У меня есть список объектов Geometry, и я хочу нарисовать их в своем приложении WPF. Этот список геометрий не настроен для точного масштабирования в данном представлении, поэтому мне нужно как-то масштабировать каждый отдельный объект, что может привести к проблемам или масштабированию контейнера, который, я думаю, предпочтительнее.

Наверное, я хочу добавить свои геометрические объекты на холст, но я не уверен. Я понятия не имею, как определить правильный способ преобразования холста, чтобы красиво отобразить его содержимое.

Я просто ищу руководство о том, как добавить геометрию в контейнер (возможно, холст) И сделать так, чтобы контейнер автоматически преобразовывался, чтобы красиво отображать его содержимое независимо от исходного размера геометрии. Я уже знаю, как добавить геометрию к контуру, но я не знаю, как правильно масштабировать холст, чтобы дети отображали его в хорошо увеличенном и центрированном виде:

path.Data = geometry[i];
canvas.Children.Add(path);

В качестве примера, предположим, что я хотел нарисовать карту мира по стране, используя только простую прямоугольную карту. Предположим, что страны сосредоточены вокруг США, а координаты указаны в милях, поэтому формы нереально велики. Как бы я добавил каждую страну в контейнер, а затем отобразил бы карту всего мира с центром на международной линии? Если бы карта не была масштабирована и переведена, она просто отобразила бы сплошной цвет, потому что карта была бы слишком сильно увеличена на Канзасе.

1 Ответ

0 голосов
/ 22 июня 2011

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

...