Windows Presentation Foundation ( WPF ) är en analog av WinForms, ett system för att bygga Windows -klientapplikationer med visuellt attraktiva användarinteraktionsmöjligheter, ett grafiskt (presentations) undersystem som en del av .NET Framework (från och med version 3.0 ), med hjälp av XAML- språket [1] .
WPF är förinstallerat på Windows Vista ( .NET Framework 3.0), Windows 7 ( .NET Framework 3.5 SP1), Windows 8 (.NET Framework 4.0 och 4.5), Windows 8.1 (.NET Framework 4.5.1) och Windows 10 (.NET Ram 4.7). Med WPF kan du skapa ett brett utbud av både fristående och webbläsarbaserade applikationer [2] .
Hjärtat i WPF är ett vektorrenderingssystem som inte beror på upplösningen hos utenheten och som skapades med hänsyn till kapaciteten hos modern grafikhårdvara. WPF tillhandahåller verktyg för att skapa ett visuellt gränssnitt, inklusive XAML (eXtensible Application Markup Language), kontroller, databindning, layouter, 2D- och 3D-grafik, animationer, stilar, mallar, dokument, text, multimedia och dekoration [2] .
Grafiktekniken bakom WPF är DirectX , till skillnad från Windows Forms , som använder GDI / GDI+ [3] . Prestanda för WPF är högre än för GDI+ på grund av användningen av grafikhårdvaruacceleration genom DirectX .
Det finns också en avskalad version av CLR som kallas WPF/E , även känd som Silverlight .
XAML är ett deklarativt gränssnittsbeskrivningsspråk baserat på XML . En modell för att separera kod och design har också implementerats, vilket gör att programmeraren och designern kan samarbeta. Dessutom finns det inbyggt stöd för elementstilar, och själva elementen delas enkelt upp i kontroller på andra nivån , som i sin tur är uppdelade ner till nivån av vektorformer och egenskaper/åtgärder. Detta gör det enkelt att styla vilket element som helst, till exempel en knapp .
Alla .NET -kompatibla språk krävs för att fungera med WPF . Den här listan innehåller många språk: C# , F# , VB.NET , C++ , Ruby , Python , Delphi (Prism) , Lua och många fler. För fullfjädrad arbete kan både Visual Studio och Expression Blend användas . Den förra är kodningsorienterad och den senare är designorienterad och låter dig göra många saker utan att behöva redigera XAML manuellt . Exempel på detta är animering, styling, tillstånd, skapa kontroller och så vidare.
WPF erbjuder ett brett utbud av alternativ för att skapa interaktiva skrivbordsapplikationer:
Det är en flexibel mekanism som låter dig länka olika data genom XAML-markeringstillägg (från kontrollegenskapsvärden till offentliga egenskaper som implementerar databasfält via Entity Framework ). Databindning representeras av klassen Binding , som i sin tur ärvs från MarkupExtension , som låter dig använda bindningar inte bara i kod, utan även i uppmärkning:
<StackPanel Orientation= "Horizontal" > <Slider x:Name= "slider" Width= "200" Minimum= "1" Maximum= "100" Value= "60" /> <TextBox Text= "{Binding ElementName=slider, Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel>Förutom den huvudsakliga bindningsklassen implementerar WPF flera andra bindningsmekanismer:
De låter dig skapa stylingelement och används som regel endast i uppmärkning:
<Button> <Button.Style> <Style TargetType= "Button" > <Setter Property= "FontSize" Value= "20" /> <Setter Property= "Foreground" Value= "LimeGreen" /> </Style> </ Button.Style> </Button>Om stilen är inställd på resurser (som en resurslexikon), kan x:Key- attributet användas för att ange en unik nyckel. Sedan, på kontrollen som du vill tillämpa stilen på, måste du använda uppmärkningstillägget StaticResource för att binda till den stilen. Om du använder den här tekniken kommer stilarna inte att störa upp markeringen.
De låter dig ändra den grafiska designen av element och representeras av klassen ControlTemplate . Till skillnad från stilar kan du ändra inte bara den grafiska representationen av ett element, utan också dess struktur. I det här fallet specificeras kontrollmallen genom egenskapen Template .
Ett enkelt exempel på en rund knapp:
<Button Content= "Hej!" Background= "LimeGreen" Foreground= "White" > <Button.Template> <ControlTemplate TargetType= "Button" > <Grid> <Ellipse Fill= "{TemplateBinding Background}" Stroke= "{TemplateBinding BorderBrush}" Stretch= "Fyll" /> <ContentPresenter VerticalAlignment= "Center" HorizontalAlignment= "Center" /> </Grid> </ControlTemplate> </Button.Template> </Button>Till skillnad från kontrollmallar är de inställda för en specifik datakontext (som i blockkontroller ställs in via DataContext- egenskapen och i listkontroller via ItemsSource ). Själva datamallen representeras av klassen DataTemplate . Egenskapen DataType används för att ange den datatyp som mallen ska tillämpas på.
Resurssystemet låter dig kombinera mallar, stilar, penslar, animationer och många andra interaktiva element, vilket avsevärt förenklar arbetet med dem. Resurser ställs in i egenskapen Resources för klassen FrameworkElement, från vilken alla kontroller, layoutpaneler och till och med Application-klassen ärvs. Detta låter dig skapa ett skiktat resurssystem:
WPF introducerar en rik, skalbar och flexibel uppsättning grafikfunktioner:
WPF tillhandahåller ett bibliotek med vanliga 2D-former ritade med vektorer, såsom rektanglar och ellipser, såväl som grafiska banor. Och i sin funktionalitet implementerar former många av funktionerna som är tillgängliga för konventionella kontroller.
2D-grafik i WPF inkluderar visuella effekter som gradienter, bitmappar, ritningar, videokonst, rotation, skalning och skevhet.
3D-grafikWPF inkluderar också 3D-renderingsfunktioner integrerade med 2D-grafik för att skapa rikare och mer intressanta användargränssnitt.
.NETTO | |
---|---|
Genomföranden | |
Arkitektur | |
Infrastruktur | |
Microsofts språk | |
Andra språk | |
Windows Foundations | |
Komponenter | |
Jämförelser |
|
Framtida teknologier | |
Informationsresurser |
Gratis och öppen källkod från Microsoft | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
allmän information |
| ||||||||||||
Programvara _ |
| ||||||||||||
Licenser | |||||||||||||
Relaterade ämnen |
| ||||||||||||
Kategori |
med GUI-element | Verktygssatser (uppsättningar)|||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
låg nivå |
| ||||||||||||||||||||||||||
hög nivå |
|