Windows Presentation Foundation

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 26. huhtikuuta 2014 tarkistetusta versiosta . tarkastukset vaativat 26 muokkausta .

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] .

Tekniikan ominaisuudet

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- merkinnän käyttäminen

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 .

Kehitystyökalut

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.

Ominaisuudet

WPF tarjoaa laajan valikoiman vaihtoehtoja interaktiivisten työpöytäsovellusten luomiseen:

Tietojen sidonta

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:

  • MultiBinding  - voit luoda useita sidoksia määrittämällä useita elementtejä
  • TemplateBinding  - käytetään malleissa mallin sisällä olevan elementin ominaisuuden sitomiseen sen elementin ominaisuuteen, johon mallia käytetään
  • PriorityBinding  - asettaa sidosluettelon paremmuusjärjestykseen ja valitsee niistä ominaisuuden (prioriteetin mukaan), johon sidontaa sovelletaan. Jos korkeimman prioriteetin sidos palauttaa onnistuneesti arvon, muita luettelon sidoksia ei tarvitse käsitellä.

Tyylit

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ä.

Ohjausmallit

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>

Tietomallit

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.

Resurssit

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:

  • resurssit objektissa - voimassa vain kyseiselle objektille
  • resurssit asettelupaneelin sisällä (esimerkiksi ruudukko) - voit asettaa resurssikontekstin rajan tämän paneelin tasolla
  • resurssit ikkuna-ikkunan sisällä - jos sovellus käyttää useita ikkunoita, yhden ikkunan resurssit eivät ole toisen ikkunan resurssien käytettävissä
<Window.Resources> <SolidColorBrush x:Key= "SampleBrush" Color= "LimeGreen" /> </Window.Resources> ... <Button Content= "Hei!" Background= "{StaticResource SampleBrush}" />
  • sovellusresurssit - saatavilla kaikkialla (yleensä määritelty erillisessä resurssisanakirjassa)

Grafiikka

WPF esittelee monipuoliset, skaalautuvat ja joustavat grafiikkaominaisuudet:

  • Resoluutio ja laitteesta riippumaton grafiikka. WPF-grafiikkajärjestelmän perusmittayksikkö on laitteesta riippumaton pikseli, joka on 1/96 tuumaa todellisesta näytön resoluutiosta riippumatta.
  • Lisätuki grafiikalle ja animaatioille. WPF yksinkertaistaa grafiikan ohjelmointia hallitsemalla animaatioita automaattisesti. Kehittäjän ei tulisi käsitellä animaatiokohtauksia, renderöintisilmukoita ja bilineaarista interpolointia
  • laitteistokiihdytystä. WPF-grafiikkajärjestelmä hyödyntää grafiikkalaitteistoa vähentääkseen suorittimen käyttöä.
2D-grafiikka

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-grafiikka

WPF sisältää myös 3D-renderöintiominaisuudet integroituna 2D-grafiikkaan rikkaampien ja kiinnostavampien käyttöliittymien luomiseksi.

Versiot

  • WPF 3.0 (marraskuu 2006)
  • WPF 3.5 (marraskuu 2007)
  • WPF 3.5 SP1 (elokuu 2008)
  • WPF 4 (huhtikuu 2010)
  • WPF 4.5 (elokuu 2012)
  • WPF 4.5.1 (lokakuu 2013)
  • WPF 4.5.2 (toukokuu 2014)
  • WPF 4.6 (heinäkuu 2015)

Katso myös

Kirjallisuus

  • Matthew McDonald. WPF: Windows Presentation Foundation .NET 4.5:ssä ja C# 5.0 Esimerkkejä ammattilaisille, 4th Edition = Pro WPF 4.5 versiossa C# 2012: Windows Presentation Foundation .NET 4.5, 4. painos. - M. : "Williams" , 2013. - 1024 s. - ISBN 978-5-8459-1854-3 .
  • Matthew McDonald. WPF: Windows Presentation Foundation in .NET 4.0 ja C# 2010 Esimerkkejä ammattilaisille = Pro WPF in C# 2010: Windows Presentation Foundation with .NET 4.0. - M. : "Williams" , 2011. - S. 1024. - ISBN 978-5-8459-1657-0 .
  • Anderson, Chris. Windows Presentation Foundationin perusteet. - Pietari. : BHV-Petersburg , 2008. - 432 s. — ISBN 978-5-9775-0265-8 .
  • Daniel M. Solis. Kuvitettu WPF. - Yhdysvallat: Apress , 2009. - 508 s. — ISBN 978-1-4302-1910-1 .

Linkit

Muistiinpanot

  1. Äännettynä "zaml"
  2. 12 MSDN . Johdatus WPF:ään . Microsoft. Haettu 15. marraskuuta 2010. Arkistoitu alkuperäisestä 14. helmikuuta 2012.
  3. Matthew McDonald. WPF: Windows Presentation Foundation in .NET 3.5 with C# 2008 Esimerkkejä ammattilaisille = Pro WPF in C# 2008: Windows Presentation Foundation with .NET 3.5. - 2. - M. : "Williams" , 2008. - S. 25. - 928 s. - ISBN 978-5-8459-1429-3 .