Canvas的可切换模板

时间:2012-01-13 09:21:37

标签: xaml c#-4.0 wpf-controls

我是新来的,也许还会警告人们我的英语不是我的主要语言。 我目前正在尝试学习WPF和XAML,现在我正在尝试制作某种Paint程序。

我有所有后台代码工作(在MVVM之后编程)我的WM有一个属性名称draw,其中包含X1,X2,Y1,Y2, ElementType 等信息。在画布上绘制所需的所有信息。我的想法是,我会在XAML代码中为不同的 ElementTypes 设置不同的模板(以便尽可能保持代码干净)IE如果ElementType = Line 它会绘制一行或ElementType = Textbox 一个文本框将插入画布上。

我在网上搜索了很多不同的方法。但我发现的唯一答案是来自这个网站,它只能让我绘制线条而不是在不同模板之间进行选择。我可能正在寻找错误的信息,或者可能不可能我不知道,但现在我想问:)

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

希望这一切都有意义

谢谢

/ Ephreal

1 个答案:

答案 0 :(得分:0)

Canvas是一个面板,我们无法像在ItemsControl中那样更改其Child模板。为您的应用程序。如果ElementType是TextBox,则必须在正确的鼠标位置插入文本框到Canvas(作为子项添加)。

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

此致

Jawahar