Windows Presentation Foundation ( WPF ) on analogi WinFormsille, järjestelmälle Windows -asiakassovellusten rakentamiseen visuaalisesti houkuttelevilla käyttäjän vuorovaikutusominaisuuksilla, graafisella (esitys) alijärjestelmällä osana .NET Frameworkia (versiosta 3.0 alkaen ), XAML -kielellä [1] .
WPF on esiasennettu Windows Vista ( .NET Framework 3.0), Windows 7 ( .NET Framework 3.5 SP1), Windows 8 (.NET Framework 4.0 ja 4.5), Windows 8.1 (.NET Framework 4.5.1) ja Windows 10 (.NET ) käyttöjärjestelmiin. Viitekehys 4.7). WPF:n avulla voit luoda laajan valikoiman sekä itsenäisiä että selainpohjaisia sovelluksia [2] .
WPF:n ytimessä on vektorirenderöintijärjestelmä, joka ei riipu tulostuslaitteen resoluutiosta ja joka on luotu ottaen huomioon nykyaikaisen grafiikkalaitteiston ominaisuudet. WPF tarjoaa työkaluja visuaalisen käyttöliittymän luomiseen, mukaan lukien XAML (eXtensible Application Markup Language), säätimet, tietojen sidonta, asettelut, 2D- ja 3D-grafiikka, animaatiot, tyylit, mallit, asiakirjat, teksti, multimedia ja koristelu [2] .
WPF:n takana oleva grafiikkatekniikka on DirectX , toisin kuin Windows Forms , joka käyttää GDI / GDI+ [3] . WPF :n suorituskyky on parempi kuin GDI+ :n, koska se käyttää grafiikkalaitteistokiihdytystä DirectX :n kautta .
CLR :stä on myös poistettu versio nimeltä WPF/E , joka tunnetaan myös nimellä Silverlight .
XAML on XML :ään perustuva deklaratiivinen käyttöliittymäkuvauskieli . Myös koodin ja suunnittelun erottamiseen on otettu käyttöön malli, joka mahdollistaa ohjelmoijan ja suunnittelijan yhteistyön. Lisäksi elementtityyleille on sisäänrakennettu tuki, ja itse elementit on helppo jakaa toisen tason ohjaimiin , jotka puolestaan jaetaan vektorien muotojen ja ominaisuuksien / toimintojen tasolle. Tämän ansiosta minkä tahansa elementin, kuten painikkeen , muotoilu on helppoa .
WPF:n kanssa toimimiseen vaaditaan mikä tahansa .NET - yhteensopiva kieli . Tämä luettelo sisältää monia kieliä: C# , F# , VB.NET , C++ , Ruby , Python , Delphi (Prism) , Lua ja monet muut. Täydelliseen työhön voidaan käyttää sekä Visual Studiota että Expression Blendiä . Edellinen on koodaussuuntautunut ja jälkimmäinen suunnittelusuuntautunut ja antaa sinun tehdä monia asioita ilman, että sinun tarvitsee muokata XAML :ää manuaalisesti . Esimerkkejä tästä ovat animaatiot, tyylit, tilat, säätimien luominen ja niin edelleen.
WPF tarjoaa laajan valikoiman vaihtoehtoja interaktiivisten työpöytäsovellusten luomiseen:
Se on joustava mekanismi, jonka avulla voit linkittää erilaisia tietoja XAML-merkintälaajennusten kautta (hallintaominaisuuksien arvoista julkisiin ominaisuuksiin, jotka toteuttavat tietokantakenttiä Entity Frameworkin kautta ). Tietojen sidontaa edustaa Binding - luokka , joka puolestaan on peritty MarkupExtensionista , jonka avulla voit käyttää sidoksia paitsi koodissa myös merkinnöissä:
<StackPanel Orientation= "Vaakasuuntainen" > <Slider x:Name= "slider" Width= "200" Minimi= "1" Suurin= "100" Value= "60" /> <TextBox Text= "{Sitovan elementin nimi=liukusäädin, Path=Arvo, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> </StackPanel>Pääsidontaluokan lisäksi WPF toteuttaa useita muita sitomismekanismeja:
Niiden avulla voit luoda tyylielementtejä, ja niitä käytetään yleensä vain merkinnöissä:
<Button> <Button.Style> <Style TargetType= "Button" > <Setter Property= "FontSize" Value= "20" /> <Setter Property= "Foreground" Value= "Lime Green" /> </Style> </ Button.Style> </Button>Jos tyyli on asetettu resursseihin (kuten resurssisanakirjaan), x:Key -attribuuttia voidaan käyttää yksilöllisen avaimen määrittämiseen. Sitten ohjausobjektissa, johon haluat käyttää tyyliä, sinun on käytettävä StaticResource- merkintälaajennusta sitoutuaksesi kyseiseen tyyliin. Jos käytät tätä tekniikkaa, tyylit eivät sotke merkintöjä.
Niiden avulla voit muuttaa elementtien graafista suunnittelua, ja niitä edustaa ControlTemplate -luokka . Toisin kuin tyylit, voit muuttaa elementin graafisen esityksen lisäksi myös sen rakennetta. Tässä tapauksessa ohjausmalli määritetään Malli -ominaisuuden kautta .
Yksinkertainen esimerkki pyöreästä painikkeesta:
<Button Content= "Hei!" Background= "Lime Green" Foreground= "White" > <Button.Template> <ControlTemplate TargetType= "Button" > <Grid> <Ellipse Fill= "{TemplateBinding Background}" Stroke= "{TemplateBinding BorderBrush}" Stretch= "Täytä" /> <ContentPresenter VerticalAlignment= "Center" HorizontalAlignment= "Center" /> </Grid> </ControlTemplate> </Button.Template> </Button>Toisin kuin ohjausmalleissa, ne on asetettu tietylle tietokontekstille (joka lohkoohjaimissa asetetaan DataContext- ominaisuuden kautta ja luetteloohjaimissa ItemsSource -ominaisuuden kautta ) . Itse tietomallia edustaa DataTemplate- luokka . DataType-ominaisuutta käytetään määrittämään tietotyyppi, johon mallia käytetään.
Resurssijärjestelmän avulla voit yhdistää malleja, tyylejä, siveltimiä, animaatioita ja monia muita interaktiivisia elementtejä, mikä yksinkertaistaa huomattavasti niiden kanssa työskentelemistä. Resurssit asetetaan FrameworkElement-luokan Resources - ominaisuuteen , josta kaikki säätimet, asettelupaneelit ja jopa Application-luokka peritään. Tämän avulla voit luoda kerrostetun resurssijärjestelmän:
WPF esittelee monipuoliset, skaalautuvat ja joustavat grafiikkaominaisuudet:
WPF tarjoaa kirjaston tavallisista 2D-muodoista, jotka on piirretty vektoreilla, kuten suorakulmiot ja ellipsit, sekä graafiset polut. Ja toiminnallisuudessaan muodot toteuttavat monia ominaisuuksia, jotka ovat saatavilla perinteisille säätimille.
WPF:n 2D-grafiikka sisältää visuaalisia tehosteita, kuten liukuvärejä, bittikarttoja, piirroksia, videotaidetta, kiertoa, skaalausta ja vinoutta.
3D-grafiikkaWPF sisältää myös 3D-renderöintiominaisuudet integroituna 2D-grafiikkaan rikkaampien ja kiinnostavampien käyttöliittymien luomiseksi.
.NETTO | |
---|---|
Toteutukset | |
Arkkitehtuuri | |
Infrastruktuuri | |
Microsoftin kielet | |
Muut kielet | |
Windows Foundations | |
Komponentit | |
Vertailut |
|
Tulevaisuuden teknologiat | |
Tietolähteet |
Ilmainen ja avoimen lähdekoodin Microsoft- ohjelmisto | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
yleistä tietoa |
| ||||||||||||
Ohjelmisto_ _ |
| ||||||||||||
Lisenssit | |||||||||||||
liittyvät aiheet |
| ||||||||||||
Kategoria |
GUI-elementtien työkalupakkit (sarjat) . | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
matalatasoinen _ |
| ||||||||||||||||||||||||||
korkea taso |
|