Xaml 画布的可切换模板

Xaml 画布的可切换模板,xaml,c#-4.0,wpf-controls,Xaml,C# 4.0,Wpf Controls,我是新来的,不妨提醒大家,我的英语不是我的主要语言。 我目前正在尝试学习WPF和XAML,现在我正在尝试制作某种绘画程序 我有所有的背景代码(在MVVM之后编程),其中我的WM有一个属性名绘图,其中包含诸如X1、X2、Y1、Y2、ElementType等信息。在画布上绘制所需的所有信息。我的想法是,我将在XAML代码中为不同的ElementTypes设置不同的模板(以便尽可能保持代码的干净性),即如果ElementType=Line,它将绘制一条线,或者如果ElementType=Textbox

我是新来的,不妨提醒大家,我的英语不是我的主要语言。 我目前正在尝试学习WPF和XAML,现在我正在尝试制作某种绘画程序

我有所有的背景代码(在MVVM之后编程),其中我的WM有一个属性名绘图,其中包含诸如X1、X2、Y1、Y2、ElementType等信息。在画布上绘制所需的所有信息。我的想法是,我将在XAML代码中为不同的ElementTypes设置不同的模板(以便尽可能保持代码的干净性),即如果ElementType=Line,它将绘制一条线,或者如果ElementType=Textbox,则将在画布上插入一个Textbox

我在网上搜索了很多不同的方法。但我找到的唯一答案来自这个网站,它只允许我在不同的模板之间画线而不是选择。我可能在搜索错误的信息,也可能不可能我不知道,但现在我想问:)

这里有没有人可以指导我正确的方向,或者用XAML做一个简单的例子,说明如何使用两个模板。非常感谢

希望这一切都有意义

多谢各位


/Ephreal

画布是一个面板,我们不能像在ItemsControl中那样更改其子模板。对于你的应用程序。如果ElementType是textbox,则必须在正确的鼠标位置将textbox插入画布(作为子项添加)

您可以使用Canvas.Left和Canvas.Top将文本框正确放置在鼠标位置

问候,

贾瓦哈尔