Windows Forms - Windows Forms

Windows Forms (WinForms)
Screenshot aplikace WinForms Designer, jak je vidět v sadě Visual Studio 2019.png
Ostatní jména WinForms
Původní autoři .NET : Microsoft ,
Mono : Ximian / Novell
Vývojáři .NET Foundation
První vydání 13. února 2002 ; Před 19 lety ( 2002-02-13 )
Stabilní uvolnění
v5.0.0-rtm.20520.1 / 20. října 2020 ; Před 10 měsíci ( 2020-10-20 )
Úložiště
Napsáno C#
Operační systém Microsoft Windows
Plošina .NET Framework , .NET Core
Typ Softwarový rámec
Licence Licence MIT
webová stránka dokumenty .microsoft .com /en-us /dotnet /framework /winforms /

Windows Forms (WinForms) je bezplatná a open-source grafická (GUI) knihovna tříd , která je součástí Microsoft .NET , .NET Framework nebo Mono Framework a poskytuje platformu pro psaní klientských aplikací pro stolní počítače, notebooky a tablety. Přestože je považována za náhradu dřívější a složitější knihovny tříd Microsoft Foundation Class Library založené na C ++ , nenabízí srovnatelné paradigma a funguje pouze jako platforma pro vrstvu uživatelského rozhraní ve víceúrovňovém řešení.

Na akci Microsoft Connect 4. prosince 2018 společnost Microsoft oznámila vydání Windows Forms jako open source projekt na GitHubu . Je vydán pod licencí MIT . V této verzi jsou Windows Forms k dispozici pro projekty cílené na rozhraní .NET Core . Rámec je však stále k dispozici pouze na platformě Windows a Monoova neúplná implementace Windows Forms zůstává jedinou implementací napříč platformami.

Architektura

Toto API je součástí .NET Framework 3.0

Aplikace Windows Forms je aplikace řízená událostmi podporovaná rozhraním Microsoft .NET Framework . Na rozdíl od dávkového programu tráví většinu času jednoduše čekáním, až uživatel něco udělá, například vyplní textové pole nebo klikne na tlačítko . Kód pro aplikaci lze zapsat v programovacím jazyce .NET, jako je C# nebo Visual Basic .

Windows Forms poskytuje přístup k nativním společným ovládacím prvkům uživatelského rozhraní Windows zabalením existujícího rozhraní Windows API do spravovaného kódu . S pomocí Windows Forms poskytuje rozhraní .NET Framework komplexnější abstrakci nad rozhraním Win32 API než Visual Basic nebo MFC.

Windows Forms je při vývoji klientských aplikací podobný knihovně Microsoft Foundation Class (MFC). Poskytuje wrapper skládající se ze sady tříd C ++ pro vývoj aplikací Windows. Neposkytuje však výchozí aplikační rámec jako MFC. Každý ovládací prvek v aplikaci Windows Forms je konkrétní instancí třídy.

Funkce

Všechny vizuální prvky v knihovně tříd Windows Forms jsou odvozeny od Control třídy. To poskytuje minimální funkce prvku uživatelského rozhraní, jako je umístění, velikost, barva, písmo, text, a také běžné události, jako je kliknutí a přetažení. Třída Control má také podporu ukotvení, která umožňuje ovládacímu prvku přeskupit svou pozici pod svým rodičem. Podpora Microsoft Active Accessibility ve třídě Control také pomáhá poškozeným uživatelům lépe používat Windows Forms.

Kromě poskytování přístupu k nativním ovládacím prvkům systému Windows, jako je tlačítko, textové pole, zaškrtávací políčko a zobrazení seznamu, přidaly Windows Forms vlastní ovládací prvky pro hostování ActiveX , uspořádání rozložení, ověřování a bohatou datovou vazbu. Tyto ovládací prvky jsou vykresleny pomocí GDI +.

Historie a budoucnost

Stejně jako Abstract Window Toolkit (AWT), ekvivalentní Java API, Windows Forms byl raný a snadný způsob, jak poskytnout komponenty grafického uživatelského rozhraní do .NET Framework . Windows Forms je postaveno na stávajícím Windows API a některé ovládací prvky pouze obalují základní součásti Windows. Některé z těchto metod umožňují přímý přístup k zpětným volbám Win32 , která nejsou k dispozici na platformách jiných než Windows.

V rozhraní .NET Framework 2.0 získaly Windows Forms bohatší ovládací prvky rozložení, ovládací prvky pásu nástrojů ve stylu Office 2003, komponentu s více vlákny, bohatší podporu pro návrh a vazbu dat a také ClickOnce pro webové nasazení.

S vydáním rozhraní .NET 3.0 společnost Microsoft vydala druhé paralelní rozhraní API pro vykreslování grafických uživatelských rozhraní: Windows Presentation Foundation (WPF) založené na rozhraní DirectX spolu s deklarativním jazykem grafického uživatelského rozhraní s názvem XAML .

Během relace otázek a odpovědí na konferenci Build 2014 Microsoft vysvětlil, že Windows Forms je v režimu údržby, přičemž nejsou přidávány žádné nové funkce, ale nalezené chyby budou stále opraveny. Nejnověji byla v aktualizacích rozhraní .NET Framework verze 4.5 zavedena vylepšená podpora vysokého DPI pro různé ovládací prvky Windows Forms.

XAML zpětná kompatibilita s Windows Forms

Pro budoucí vývoj uspěl Microsoft ve Windows Forms s položkou GUI založenou na XAML pomocí rámců, jako jsou WPF a UWP . Umístění komponent GUI podobným způsobem jako Windows Forms je však v XAML stále zajištěno nahrazením kořenového prvku XAML stránky/okna ovládacím prvkem „Canvas“ UI. Při provádění této změny může uživatel vytvořit okno podobným způsobem jako ve Windows Forms přímým přetažením komponent pomocí grafického uživatelského rozhraní Visual Studio.

Zatímco XAML poskytuje zpětnou kompatibilitu umístění přetažením pomocí ovládacího prvku Canvas, ovládací prvky XAML jsou pouze podobné ovládacím prvkům Windows Forms a nejsou zpětně kompatibilní jeden s jedním. Vykonávají podobné funkce a mají podobný vzhled, ale vlastnosti a metody jsou natolik odlišné, že vyžadují přemapování z jednoho API na druhé.

Alternativní implementace

Mono je projekt vedený společností Xamarin (dříve Ximian , poté Novell ) za účelem vytvoření sady nástrojů kompatibilních se standardem Ecma .NET Framework .

V roce 2011 byla podpora Mono pro System.Windows.Forms k .NET 2.0 oznámena jako dokončená; System.Windows.Forms 2.0 funguje nativně na Mac OS X. System.Windows.Forms však nebyl na Mono aktivně vyvíjen. Plná kompatibilita s .NET nebyla možná, protože System.Windows Forms společnosti Microsoft je hlavně obalem API Windows a některé metody umožňují přímý přístup k zpětným volbám Win32 , která nejsou k dispozici na jiných platformách než Windows. Významnějším problémem je, že od verze 5.2 byl Mono upgradován tak, že jeho výchozí je převzít 64bitovou platformu. System.Windows.Forms na Mono pro platformu Macintosh OS X byl však vytvořen pomocí 32bitového subsystému Carbon . Od tohoto data zůstává 64bitová verze System.Windows.Forms pro použití v systému Mac OS X nedostupná a lze očekávat, že budou spuštěny pouze aplikace .NET vytvořené pro 32bitovou platformu.

Viz také

Reference

externí odkazy