2010-06-20 58 views
6

Jestem zdezorientowany, czy ktoś może mi pomóc?Jaka jest różnica między System.Windows.Controls.Control i System.Windows.Forms.Control?

Edit

Moim problemem jest to, że stworzyliśmy ActiveX w Delphi, a ja po prostu nie mogę zmusić go do gry ładnie w WPF ziemi. Spojrzałem na odpowiednie strony MSDN i wygląda na to, że POWINNO działać, więc prawdopodobnie popełniłem błąd w sposobie, w jaki utworzyłem kontrolkę ActiveX w pierwszej kolejności.

Zobacz Hosting ActiveX control in WPF

Odpowiedz

4

Zapraszamy do obejrzenia oficjalnej dokumentacji dla obu klas


Oto podpis klasy dla System.Windows.Controls.control klasy

public class Control : FrameworkElement 

Oto podpis klasy dla System.Windows.Forms.Control klasa

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
Definiuje klasę bazową dla kontroli, które są składnikami z reprezentacji wizualnej.

System.Windows.Controls.Control
Reprezentuje klasę bazową dla interfejsu użytkownika (UI) elementów, które korzystają ControlTemplate do definiowania ich wyglądu.

0

Co to jest Windows Presentation Foundation i Windows Forms?

Powinieneś być w stanie określić, że z obszaru nazw jest to klasa kontrolna dla WPF (wszystkie WPF używa nazw Windows.), A druga dla Windows Forms.

Czy możesz wyjaśnić, co dokładnie uważasz za mylące? Zaktualizuję moją odpowiedź.

HTH,

Przydatne linki
- Windows Forms Controls and Equivalent WPF Controls
- System.Windows.Forms
- System.Windows.Controls

+0

To, co uważam za mylące, to prawdopodobnie import kontrolki ActiveX. Jest napisany w Delphi i oczywiście nie pochodzi z System.Windows.Forms.Control. – Mmarquee

0

Myślę, że istnieje wiele różnic, ale pierwszym, który skacze na uwadze to, że System.Windows.Controls.Control zastosowania szablon do definiowania wizualnych aspektów kontroli, bez szablonu nie ma w ogóle żadnego aspektu wizualnego. Innymi słowy bez definiowania tego szablonu nie można go ustawić, aby był widoczny lub pokazywał go w aplikacji, ponieważ nie ma dosłownie definicji wizualnej.

Z drugiej strony masz System.Windows.Forms.Control, który pozwala utworzyć kontrolkę, która dziedziczy z UserControl, klasy kontrolnej lub innej Kontroli systemu Windows. Jeśli nie określisz nowego ustawienia wizualnego dla twojego sterowania, wyświetli się ono w zależności od tego, jakie ustawienie ma kontrolować nadrzędna kontrola, którą odziedziczyłeś.

Dzięki temu uzyskasz większą elastyczność, niż koszt dodatkowej pracy, a dzięki System.Windows.Forms.Control możesz dziedziczyć z istniejących elementów sterujących, oszczędzając czas, jako koszt mniejszej elastyczności.

+0

Cześć Tim, zobacz odpowiedź Igora, ponieważ twoja droga jest daleko. – CodeNaked

+0

Nie jestem pewien, skąd przybywasz z tym komentarzem, że jestem "daleko od". Udzielone Forms.Control jest dla formularzy systemu Windows, a Controls.Control dla WPF, ale pierwotne pytanie przededycyjne tylko poprosiło o różnicę i jest to jedna z głównych różnic, jak wskazano w tych artykułach MSDN: http: //msdn.microsoft.com/en-us/library/system.windows.controls.control.aspx i http://msdn.microsoft.com/en-us/library/system.windows.forms.control.aspx. Chciałbym wiedzieć, jak to się stało? –

+0

Twoja odpowiedź oznacza, że ​​są one wymienne w zależności od tego, czy chcesz większej elastyczności, czy mniejszej pracy, której nie ma. – CodeNaked

11

Są to kontrole, które żyją w zupełnie różnych światach.

System.Windows.Controls.Control to kontrola WPF .

System.Windows.Forms.Control to kontrolka WinForms .

Wybór jest całkiem prosty. Jeśli tworzysz aplikację WinForms - użyj kontrolek WinForms. Podobnie, jeśli piszesz aplikację WPF - użyj formantów WPF.

Jeśli chodzi o wybór między WPF i WinForms - this question może pomóc.

1

System.Windows.Controls.Control jest dla aplikacji WPF

System.Windows.Forms.Control i s dla aplikacji WinForm.

Powiązane problemy