У меня есть полотно шириной 200 пикселей и высотой 100 пикселей.Затем у меня есть 4 квадрата, которые расположены по типу шахматной доски:
-- --
| | |
-- --
| | |
-- --
Координата пикселя нижнего левого квадрата равна 300 300;так что это вне поля зрения холста.У меня есть 2 вопроса:
1) Как лучше всего добавить эти 4 квадрата на холст?Вот как я это делал.
Path p = new Path();
p.Fill = Blue;
p.Data = Square[0];
canvas.Children.Add(p);
2) Как изменить диапазон просмотра холста, чтобы он "двигался" туда, где на самом деле нарисованы его дочерние элементы?
Iне могу заставить это работать, но я могу получить два вида рабочих результатов.Во-первых, я просто рисую квадраты и добавляю преобразование, которое очень мало масштабирует их.Это приводит к тому, что формы можно просматривать на холсте, но они не отцентрированы и не масштабированы.
Во втором случае они добавляются друг на друга, но по центру.Это происходит, когда я устанавливаю значение Stretch для пути.
В основном я хочу добавить набор объектов Geometry на холст и сделать так, чтобы представление холста перемещалось, чтобы сфокусироваться на ограничивающей рамке его детей.Как мне сделать это программно в C #.Это достаточно легко сделать в XAML, если вы жестко закодируете фигуры, но в моем случае я хочу знать, как автоматически масштабировать и масштабировать для любой заданной формы и размера.