Windows-formulär
Andra namn | WinForms |
---|---|
Originalförfattare |
.NET : Microsoft , Mono : Ximian / Novell |
Utvecklare | .NET Foundation |
Initial release | 13 februari 2002 |
Stabil frisättning | v5.0.17 / 11 maj 2022
|
Förvar | |
Skrivet i | C# |
Operativ system | Microsoft Windows |
Plattform | .NET Framework , .NET , Mono |
Typ | Programvara ramverk |
Licens | MIT-licens |
Hemsida |
Windows Forms (WinForms) är ett gratis grafiskt ( GUI) klassbibliotek med öppen källkod som ingår som en del av Microsoft .NET , .NET Framework eller Mono , som tillhandahåller en plattform för att skriva klientapplikationer för stationära, bärbara och surfplattor. Även om det ses som en ersättning för det tidigare och mer komplexa C++- baserade Microsoft Foundation Class Library , erbjuder det inte ett jämförbart paradigm och fungerar bara som en plattform för användargränssnittsnivån i en flerskiktslösning .
Vid Microsoft Connect-evenemanget den 4 december 2018 tillkännagav Microsoft att de släpper Windows Forms som ett projekt med öppen källkod på GitHub . Den släpps under MIT-licensen . Med den här utgåvan har Windows Forms blivit tillgängligt för projekt som är inriktade på .NET Core -ramverket. Ramverket är dock fortfarande endast tillgängligt på Windows-plattformen, och Monos ofullständiga implementering av Windows Forms är fortfarande den enda plattformsoberoende implementeringen.
Arkitektur
En Windows Forms-applikation är en händelsestyrd applikation som stöds av Microsofts .NET Framework . Till skillnad från ett batchprogram spenderar det större delen av sin tid med att bara vänta på att användaren ska göra något, som att fylla i en textruta eller klicka på en knapp . Koden för applikationen kan skrivas i ett .NET-programmeringsspråk som C# eller Visual Basic .
Windows Forms ger åtkomst till inbyggda Windows-användargränssnitt Common Controls genom att linda in det befintliga Windows API i hanterad kod . Med hjälp av Windows Forms ger .NET Framework en mer omfattande abstraktion över Win32 API än vad Visual Basic eller MFC gjorde.
Windows Forms liknar Microsoft Foundation Class- biblioteket (MFC) vid utveckling av klientapplikationer. Den tillhandahåller ett omslag som består av en uppsättning C++-klasser för utveckling av Windows-applikationer. Det tillhandahåller dock inte ett standardprogramramverk som MFC. Varje kontroll i en Windows Forms-applikation är en konkret instans av en klass.
Funktioner
Alla visuella element i Windows Forms-klassbiblioteket härrör från klassen Control. Detta ger den minimala funktionaliteten hos ett användargränssnittselement som plats, storlek, färg, teckensnitt, text, såväl som vanliga händelser som klick och dra/släpp. Control-klassen har också dockningsstöd för att låta en kontroll ändra sin position under sin förälder. Microsoft Active Accessibility- stödet i klassen Control hjälper också funktionshindrade användare att använda Windows Forms bättre.
I Visual Studio skapas formulär med hjälp av dra-och-släpp- tekniker. Ett verktyg används för att placera kontroller (t.ex. textrutor, knappar, etc.) på formuläret (fönstret). Kontroller har attribut och händelsehanterare kopplade till dem. Standardvärden tillhandahålls när kontrollen skapas, men kan ändras av programmeraren. Många attributvärden kan ändras under körning baserat på användaråtgärder eller förändringar i miljön, vilket ger en dynamisk applikation. Till exempel kan kod infogas i formulärets storlekshändelsehanterare för att flytta en kontroll så att den förblir centrerad på formuläret, expanderar för att fylla i formuläret etc. Genom att infoga kod i händelsehanteraren för en knapptryckning i en textruta, programmet kan automatiskt översätta fallet med texten som skrivs in, eller till och med förhindra att vissa tecken infogas.
Förutom att ge åtkomst till inbyggda Windows-kontroller som knapp, textruta, kryssruta och listvy, lade Windows Forms till sina egna kontroller för ActiveX- värd, layoutarrangemang, validering och rik databindning. Dessa kontroller renderas med GDI +.
Historia och framtid
Precis som Abstract Window Toolkit (AWT), motsvarande Java API, var Windows Forms ett tidigt och enkelt sätt att tillhandahålla grafiska användargränssnittskomponenter till .NET Framework . Windows Forms är byggt på det befintliga Windows API och vissa kontroller omsluter bara underliggande Windows-komponenter. Vissa av metoderna tillåter direktåtkomst till Win32- återuppringningar , som inte är tillgängliga på icke-Windows-plattformar.
I .NET Framework 2.0 fick Windows Forms rikare layoutkontroller, verktygsremskontroller i Office 2003-stil, flertrådskomponent, rikare designtid och databindningsstöd samt ClickOnce för webbaserad distribution.
Med lanseringen av .NET 3.0 släppte Microsoft ett andra, parallellt API för att rendera GUI: Windows Presentation Foundation (WPF) baserat på DirectX, tillsammans med ett GUI-deklarativt språk som heter XAML .
Under en fråge-och-svar-session på Build 2014- konferensen förklarade Microsoft att Windows Forms var i underhållsläge, utan att några nya funktioner läggs till, men att buggar som hittats fortfarande skulle fixas. Senast introducerades förbättrat hög-DPI-stöd för olika Windows Forms-kontroller i uppdateringar av .NET Framework version 4.5.
XAML bakåtkompatibilitet med Windows Forms
För framtida utveckling har Microsoft lyckats med Windows Forms med en XAML -baserad GUI-post med ramverk som WPF och UWP . Dra och släpp-placering av GUI-komponenter på ett sätt som liknar Windows Forms tillhandahålls dock fortfarande i XAML genom att ersätta XAML-rotelementet i sidan/fönstret med en "Canvas" UI-kontroll. När du gör denna ändring kan användaren bygga ett fönster på liknande sätt som i Windows Forms genom att direkt dra och släppa komponenter med Visual Studio GUI.
Medan XAML tillhandahåller drag- och släppplacering bakåtkompatibilitet genom Canvas Control, liknar XAML Controls bara Windows Forms Controls och är inte en-till-en-bakåtkompatibla. De utför liknande funktioner och har ett liknande utseende, men egenskaperna och metoderna är tillräckligt olika för att kräva ommappning från ett API till ett annat.
Alternativ implementering
Mono är ett projekt som leds av Xamarin (tidigare av Ximian , sedan Novell ) för att skapa en Ecma - standardkompatibel .NET Framework -kompatibel uppsättning verktyg.
2011 tillkännagavs Monos stöd för System.Windows.Forms från och med .NET 2.0 som komplett; System.Windows.Forms 2.0 fungerar inbyggt på Mac OS X. System.Windows.Forms har dock inte utvecklats aktivt på Mono. Full kompatibilitet med .NET var inte möjlig, eftersom Microsofts System.Windows Forms huvudsakligen är ett omslag runt Windows API , och några av metoderna tillåter direktåtkomst till Win32- återuppringningar , som inte är tillgängliga på andra plattformar än Windows. Ett mer betydande problem är att sedan version 5.2 har Mono uppgraderats så att dess standard är att anta en 64-bitars plattform. System.Windows.Forms på Mono för Macintosh OS X-plattformen har dock byggts med ett 32-bitars undersystem, Carbon . Från och med detta datum [ när? ] , är en 64-bitarsversion av System.Windows.Forms för användning på Mac OS X fortfarande otillgänglig och endast .NET-program byggda för 32-bitarsplattformen kan förväntas köras.
Se även
- Microsoft Visual Studio
- Klicka en gång
- Abstract Window Toolkit (AWT), motsvarande GUI Application Programming Interface (API) för programmeringsspråket Java
- Visual Component Library (VCL) från Borland
- Visuellt test , testautomatisering