代码之家  ›  专栏  ›  技术社区  ›  serhio

(WPF)用户控件还是自定义控件?

  •  1
  • serhio  · 技术社区  · 14 年前

    我需要建立一个具体的互动绘图“画布”。

    在画布中,用户将能够放置图形元素-点与线链接。

    我有一个现成的WinForms用户控件- pointsList

    点列表

    我的问题:

    1. 用户控件或自定义控件
    2. 是否可以放置(浮动)WinForm 控制?
    3. 在另一个WPF用户控件中重写一个浮动的、可调整大小的WPF用户控件会很困难吗?

    更好的解释 ":

    在这个画布上你有一个按钮。 单击该按钮时,将打开一个“浮动窗口控件” 画布。

    此控件类似于Windows窗体,可以打开、移动、关闭、调整大小,但所有这些都在父画布中。类似于MDI父窗体和子窗体的内容,但父窗体不是窗体,而是WPF容器(比如Canvas)。

    2 回复  |  直到 14 年前
        1
  •  4
  •   Julian Dominguez    14 年前

    1) 这两种类型都适合你的需要。用户控件通常更容易编写,特别是在您刚接触WPF时。CustomControl实际上不是类,但它意味着您扩展了现有控件。这两种方法有一些不同,最大的一个是自定义控件更容易使其成为主题。在您的情况下,我认为这不是一个需要,所以我推荐一个用户控件。更多信息: http://www.wpftutorial.net/CustomVsUserControl.html

    2) 是的。可以使用WindowsFormsHost控件将WinForms控件放入WPF中。一个限制是WinForms控件必须是非透明矩形,这意味着您不能放入不同的形状并期望它们正确覆盖。寻找WindowsFormsHost,你会发现很多例子。

    3) 你能解释清楚吗?不明白您的意思,但您当然可以将用户控件放在彼此之间,而WPF在处理动态大小调整时尤其有用。

        2
  •  1
  •   jeff    14 年前

    我们从CodeProject中改编了这个WPF代码。 link text