2014-01-15 3 views
0

Я рисую карту на экране в соответствии с файлом конфигурации, который был прочитан, поэтому (насколько я знаю ... но я только работал в WPF в течение двух дней) все формы карты на холсте необходимо нарисовать и трансформировать программно. Один из объектов, которые нужно нарисовать, представляет собой (для любых целей и задач) сетку. В зависимости от текущего коэффициента масштабирования мне нужно масштабировать фигуры, чтобы они были больше или меньше. Я искал что-то, что имеет тот же эффект, что и следующий (поддельный) код:Можно ли программно группировать фигуры в коллекцию для массового преобразования?

ShapeGroup g = new ShapeGroup(); 
g.add(rect); 
g.add(line1); 
g.add(line2); 
g.add(line3); 

g.transform(new ScaleTransform(2.0)); 

ли есть WPF любой подобного программного функциональности? Благодаря!

+0

Проверьте это [статья] (http://blogs.msdn.com/b/ivo_manolov/archive/2007/10/05/ui-scaling-ui-zooming-with-wpf.aspx) от Иво Манолова. Я думаю, это отвечает на ваш вопрос. – wdosanjos

+0

Ничего себе, это лучше, чем я надеялся! Благодаря! – Benjin

ответ

0

Проверьте это article от Ivo Manolov. Я думаю, это отвечает на ваш вопрос.

0

Вы можете попытаться использовать любой элемент управления контейнером (Grid, DockPanel, StackPanel и т. Д.), Чтобы сгруппировать эти фигуры, а затем применить преобразование к контейнеру. Та же идея была продемонстрирована в статье, предложенной @wdosanjos в комментарии выше. В этой статье автор выбрал DockPanel в качестве контейнера для преобразования. Для иллюстрации, код будет примерно так:

Grid g = new Grid(); 
g.Children.add(rect); 
g.Children.add(line1); 
g.Children.add(line2); 
g.Children.add(line3); 

g.LayoutTransform(new ScaleTransform(2.0)); 

Примечание: Код не демонстрируют позиционирование фигуры внутри контейнера.

Смежные вопросы