2010-06-20 16 views
6

Estoy confundido, ¿alguien puede ayudarme?¿Cuál es la diferencia entre System.Windows.Controls.Control y System.Windows.Forms.Control?

Editar

Mi problema es que he creado un control ActiveX en Delphi y yo simplemente no puede llegar a jugar muy bien en WPF tierra. He mirado en las páginas correspondientes de MSDN, y parece que se debe trabajar, por lo que puede haber ido mal en la forma en que he creado el control ActiveX en el primer lugar.

Ver Hosting ActiveX control in WPF

Respuesta

4

Tener un vistazo a la documentación oficial para ambas clases


Aquí está la firma Clase de System.Windows.Controls.control clase

public class Control : FrameworkElement 

Aquí está la firma Clase de System.Windows.Forms.Control clase

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

0

System.Windows.Forms.Control
Define la clase base para los controles, que son componentes con representación visual.

System.Windows.Controls.Control
Representa la clase base para la interfaz de usuario (UI) elementos que utilizan un ControlTemplate para definir su apariencia.

0

¿Qué es Windows Presentation Foundation y Windows Forms?

Debería poder determinar que desde el espacio de nombres se encuentra base Clase de control para WPF (todos WPF usa el nombre de Windows) y el otro es para Windows Forms.

Puede aclarar qué es exactamente lo que encuentre confuso? Actualizaré mi respuesta.

HTH,

Enlaces útiles
- Windows Forms Controls and Equivalent WPF Controls
- System.Windows.Forms
- System.Windows.Controls

+0

Lo que encuentro confuso es probablemente la importación del control ActiveX. Está escrito en Delphi, y obviamente no desciende de System.Windows.Forms.Control. – Mmarquee

0

Creo que hay una serie de diferencias, pero el primero que salta a la mente es que System.Windows.Controls.Control usos una plantilla para definir los aspectos visuales del control, sin una plantilla no tiene aspecto visual en absoluto. En otras palabras, sin definir esa plantilla no puede enfocarla para que se vuelva visible o mostrarla en su aplicación, porque literalmente no existe una definición visual para ella.

Por otro lado, tiene un System.Windows.Forms.Control que le permite crear un control que hereda de un UserControl, clase de control u otro control de Windows. Si no especifica una nueva configuración visual para su control, se mostrará de acuerdo con lo que el control principal que heredó se configuró para visualizarse.

Por lo tanto, con System.Windows.Controls.Control obtiene mucha más flexibilidad que el costo del trabajo adicional, y con System.Windows.Forms.Control hereda de los controles existentes, ahorrando tiempo, como el costo de una menor flexibilidad.

+0

Hola Tim, mira la respuesta de Igor, ya que estás muy lejos. – CodeNaked

+0

No estoy seguro de dónde vienes con este comentario de que estoy "muy lejos". Formularios concedidos. Control es para formularios de Windows y Controls.Control es para WPF, pero la pregunta original de preedición acaba de solicitar la diferencia, y esta es una de las principales diferencias, como se señala en estos artículos de MSDN: http: //msdn.microsoft.com/en-us/library/system.windows.controls.control.aspx y http://msdn.microsoft.com/en-us/library/system.windows.forms.control.aspx. Me encantaría saber cómo está todo eso? –

+0

Su respuesta implica que los dos son intercambiables, en función de si desea más flexibilidad o menos trabajo, que no lo son. – CodeNaked

11

Ellos son controles que viven en mundos completamente diferentes .

System.Windows.Controls.Control es un WPF control.

System.Windows.Forms.Control es un WinForms control.

La elección es bastante simple. Si está desarrollando una aplicación WinForms, use controles WinForms. Del mismo modo, si está escribiendo una aplicación WPF, use controles WPF.

En cuanto a elegir entre WPF y WinForms, this question podría ayudar.

1

System.Windows.Controls.Control es para aplicación WPF

System.Windows.Forms.Control i s para la aplicación Winforms.

Cuestiones relacionadas