Переключаемые шаблоны для холста - PullRequest
0 голосов
/ 13 января 2012

Я новичок здесь и, возможно, также предупрежу людей, что мой английский не мой основной язык.В настоящее время я пытаюсь изучить WPF и XAML, и сейчас я пытаюсь создать какую-то программу для рисования.

У меня работает весь фоновый код (программирование после MVVM), где у моего WM есть рисование имени свойства, которое содержит такую ​​информацию, как X1, X2, Y1, Y2, ElementType и т. Д.Всю информацию нужно рисовать на холсте.Моя идея заключалась в том, что у меня были бы разные шаблоны в коде XAML для различных ElementTypes (так, чтобы сохранить код как можно более чистым) IE, если ElementType = Line , он бы нарисовал линиюили ElementType = Textbox , текстовое поле будет вставлено на холст.

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

Так что здесь есть кто-то, кто мог бы направить меня в правильном направлении или сделать простойпример в XAML, как это сделать с двумя шаблонами.Было бы очень признательно

Надеюсь, что все это имеет смысл

Спасибо

/ Ephreal

1 Ответ

0 голосов
/ 17 января 2012

Canvas - это панель, и мы не можем изменить ее дочерний шаблон, как мы можем это сделать в ItemsControl. Для вашего приложения. Вы должны вставить текстовое поле в Canvas (добавить как дочерний элемент) в правильном положении мыши, если ElementType - TextBox.

Вы можете использовать Canvas.Left и Canvas.Top для правильного размещения текстового поля в позиции мыши.

С уважением,

Джавахар

...