我很困惑,任何人都可以帮助我吗?
修改
我的问题是我在Delphi中创建了一个ActiveX控件,我无法让它在WPF中很好地发挥作用。我查看了相关的MSDN页面,看起来它应该工作,所以我可能在创建ActiveX控件的方式上出错了。
答案 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>