我需要构建一个特定的交互式绘图“画布”。
在该画布中,用户可以放置图形元素 - 与线条相关联的点。
我有一个准备好的WinForms UserControl - pointsList
,它代表画布中显示的点列表。 PointsList能够添加和删除点,用一条线链接它们。
pointsList
应该是画布中的浮动(可移动)和可调整大小的控件(就像屏幕上的窗口一样)。
我的问题:
修改
更好地解释“浮动控制”:
想象一下WPF容器(比如说,Canvas)。
在这个画布中你有一个按钮。
单击该按钮时,“浮动窗口控件”将在
此控件类似于Windows窗体,可以打开,移动,关闭,调整大小,但所有这些都在父画布中。类似于MDI父表单和子表单的东西,但父表单不是表单,而是WPF容器(比如Canvas)。
答案 0 :(得分:4)
1)两种类型都适合您的需求。 UserControls通常更容易创作,尤其是当您不熟悉WPF时。 CustomControl实际上不是类,但它意味着您扩展现有控件。两种方法之间存在一些差异,最大的一种方法是自定义控件更容易使其成为主题。在你的情况下,我认为这不是一个需要,所以我建议一个UserControl。有关此问题的更多信息:http://www.wpftutorial.net/CustomVsUserControl.html
2)是的。您可以使用WindowsFormsHost控件在WinF中放置WinForms控件。一个限制是WinForms控件必须是一个非透明的矩形,这意味着你不能投入不同的形状并期望它们正确叠加。寻找WindowsFormsHost,你会发现很多例子。
3)你能更好地解释一下吗?不明白你的意思,但当然你可以把UserControls放在彼此之内,而WPF在处理动态大小调整时特别有用。
答案 1 :(得分:1)
我们从CodeProject中调整了这个WPF代码有很多里程。 link text