System.Windows.Controls.Control和System.Windows.Forms.Control有什么区别?

时间:2010-06-20 23:09:16

标签: c# wpf

我很困惑,任何人都可以帮助我吗?

修改

我的问题是我在Delphi中创建了一个ActiveX控件,我无法让它在WPF中很好地发挥作用。我查看了相关的MSDN页面,看起来它应该工作,所以我可能在创建ActiveX控件的方式上出错了。

请参阅Hosting ActiveX control in WPF

6 个答案:

答案 0 :(得分:16)

它们是生活在完全不同的世界中的控件。

System.Windows.Controls.Control WPF控件

System.Windows.Forms.Control WinForms控件

选择非常简单。如果您正在开发WinForms应用程序 - 使用WinForms控件。同样,如果您正在编写WPF应用程序 - 请使用WPF控件。

至于在WPF和WinForms之间进行选择 - this question可能有所帮助。

答案 1 :(得分:5)

查看两个班级的官方文档


以下是 System.Windows.Controls.control

的类签名
public class Control : FrameworkElement

以下是 System.Windows.Forms.Control

的类签名
public class Control : Component, IOleControl, 
    IOleObject, IOleInPlaceObject, IOleInPlaceActiveObject, IOleWindow, IViewObject, 
    IViewObject2, IPersist, IPersistStreamInit, IPersistPropertyBag, IPersistStorage, 
    IQuickActivate, ISupportOleDropSource, IDropTarget, ISynchronizeInvoke, IWin32Window, 
    IArrangedElement, IBindableComponent, IComponent, IDisposable

答案 2 :(得分:1)

System.Windows.Controls.Control适用于WPF应用

System.Windows.Forms.Control我是Winforms应用程序。

答案 3 :(得分:0)

<强> System.Windows.Forms.Control的
定义控件的基类,它是具有可视表示的组件。

<强> System.Windows.Controls.Control
表示使用ControlTemplate定义其外观的用户界面(UI)元素的基类。

答案 4 :(得分:0)

什么是Windows Presentation Foundation和Windows窗体?

您应该能够从名称空间确定一个是 base WPF的控件类(所有WPF使用.Windows命名),另一个是Windows Forms。

你能说清楚你到底发现什么令人困惑吗?我会更新我的答案。

HTH,

有用的链接
  - Windows Forms Controls and Equivalent WPF Controls
  - System.Windows.Forms
  - System.Windows.Controls

答案 5 :(得分:0)

我认为存在许多差异,但第一个跳出来的是System.Windows.Controls.Control使用模板来定义控件的视觉方面,没有模板它根本没有视觉方面。换句话说,如果没有定义该模板,则无法将其聚焦为可见或在应用程序中显示它,因为它实际上没有可视化定义。

另一方面,您有一个System.Windows.Forms.Control,它允许您创建一个继承自UserControl,控件类或其他Windows控件的控件。如果没有为控件指定新的可视化设置,它将根据您继承的父控件设置为显示来显示。

因此,使用System.Windows.Controls.Control可以获得更多灵活性,因为额外工作的成本更高,并且System.Windows.Forms.Control可以从现有控件继承,从而节省时间,因为灵活性较低。< / p>