Windows taqdimot fondi - Windows Presentation Foundation - Wikipedia

Windows taqdimot fondi (WPF)
Asl muallif (lar)Microsoft
Tuzuvchi (lar).NET Foundation
Dastlabki chiqarilish2006 yil 21-noyabr; 14 yil oldin (2006-11-21)
Barqaror chiqish
v5.0.0-rtm.20520.3 / 2020 yil 20 oktyabr; 55 kun oldin (2020-10-20)
Ombor Buni Vikidatada tahrirlash
YozilganC #, C ++, C
Operatsion tizimMicrosoft Windows
Platforma.NET Framework,
.NET Core
TuriDastur doirasi
LitsenziyaMIT litsenziyasi
Veb-saythujjatlar.microsoft.com/ uz-biz/ dotnet/ ramka/ wpf/indeks

Windows taqdimot fondi (WPF) a bepul va ochiq manbali grafik quyi tizim (shunga o'xshash WinForms ) dastlab tomonidan ishlab chiqilgan Microsoft ko'rsatish uchun foydalanuvchi interfeyslari Windows asosidagi dasturlarda. Avval "Avalon" nomi bilan tanilgan WPF dastlab bir qismi sifatida chiqarildi .NET Framework 3.0 2006 yilda. WPF foydalanadi DirectX va dasturlarni yaratish uchun izchil dasturlash modelini taqdim etishga urinishlar. U foydalanuvchi interfeysini ajratib turadi biznes mantiqi va shunga o'xshash narsalarga o'xshaydi XML - yo'naltirilgan ob'ekt modellari, masalan, amalga oshirilganlar kabi XUL va SVG.[1]

Umumiy nuqtai

dot net three point zero windows stack diagram
Bu kichik tizim ning bir qismidir .NET Framework 3.0.

WPF ishlaydi XAML, an XML - turli xil interfeys elementlarini aniqlash va bog'lash uchun asoslangan til.[2] WPF dasturlari mustaqil ish stoli dasturlari sifatida joylashtirilishi yoki veb-saytga o'rnatilgan ob'ekt sifatida joylashtirilishi mumkin. WPF bir qator umumiy narsalarni birlashtirishga qaratilgan foydalanuvchi interfeysi 2D / 3D renderlash kabi elementlar, sobit va moslashuvchan hujjatlar, tipografiya, vektorli grafikalar, ish vaqti animatsiya va oldindan taqdim etilgan ommaviy axborot vositalari. Keyinchalik ushbu elementlar turli hodisalar, foydalanuvchilarning o'zaro aloqalari va. Asosida bog'lanishi va boshqarilishi mumkin ma'lumotlarni bog'lash.[3]

WPF ish vaqti kutubxonalari ning barcha versiyalariga kiritilgan Microsoft Windows beri Windows Vista va Windows Server 2008. Ning foydalanuvchilari Windows XP SP2 / SP3 va Windows Server 2003 ixtiyoriy ravishda kerakli kutubxonalarni o'rnatishi mumkin.[4][5]

Microsoft Silverlight O'rnatilgan veb-boshqaruv elementlarini taqqoslash uchun asosan WPF-ning bir qismidir Adobe Flash. 3D ish vaqti ko'rsatilishi Silverlight 5-dan beri Silverlight-da qo'llab-quvvatlandi.[6]

Da Microsoft Connect tadbir 2018 yil 4-dekabr, Microsoft WPF-ni ochiq manbali loyiha sifatida chiqarishni e'lon qildi GitHub. U ostida chiqariladi MIT litsenziyasi. Windows taqdimot fondi maqsadli loyihalar uchun mavjud bo'ldi .NET Core ramka, ammo tizim o'zaro faoliyat platforma emas va hali ham faqat Windows-da mavjud.[7][8]

Xususiyatlari

Direct3D

Grafika, shu jumladan, Windows kabi ish stoli elementlari yordamida ko'rsatiladi Direct3D. Buning evaziga murakkabroq grafikalar va maxsus mavzularni namoyish etish mumkin GDI yanada kengroq qo'llab-quvvatlash va yagona boshqaruv mavzusi. Bu Windows-ga ba'zi grafik vazifalarni yuklashga imkon beradi GPU. Bu kompyuterdagi ish hajmini kamaytiradi Markaziy protsessor. Grafik protsessorlar parallel pikselli hisoblash uchun optimallashtirilgan. Bu GPU-lari unchalik kuchli bo'lmagan bozorlarda, masalan, netbuk bozor.

Windows taqdimot fondi (WPF) - bu Microsoft-ning boy foydalanuvchi tajribasiga ega dasturlarni yaratish uchun foydalanuvchi interfeysi. Bu .NET Framework 3.0 va undan yuqori qismining bir qismidir. WPF-ning vektorli grafikalarga ahamiyati aksariyat boshqaruv va elementlarni sifatini yo'qotmasdan yoki miqyosini oshirishga imkon beradi piksellanish Shunday qilib, mavjudlikni oshirish. Silverlight bundan mustasno, Direct3D integratsiyasi soddalashtirilgan 3D ko'rsatishga imkon beradi. Bundan tashqari, interaktiv 2D tarkibni 3D sirtlarda qoplash mumkin.[9][10]

Ma'lumotlarni bog'lash

  • WPF dasturlar ishlab chiquvchilariga ilovalar ichidagi ma'lumotlarni bog'lash va boshqarish imkoniyatini berish uchun o'rnatilgan ma'lumotlar xizmatlari to'plamiga ega. U to'rt turdagi ma'lumotlarni bog'lashni qo'llab-quvvatlaydi:
    1. bir marta: bu erda mijoz serverdagi yangilanishlarni e'tiborsiz qoldiradi.
    2. bitta usul: bu erda mijoz ma'lumotlarga faqat o'qish huquqiga ega.
    3. ikki yo'l: bu erda mijoz serverdan ma'lumotlarni o'qishi va yozishi mumkin
    4. manbani olishning bir usuli: bu erda mijoz ma'lumotlarga faqat yozish huquqiga ega
  • LINQ so'rovlar, shu jumladan LINQ - XML, shuningdek, ma'lumotlarni bog'lash uchun ma'lumotlar manbalari vazifasini bajarishi mumkin.[10]
  • Ma'lumotlarni bog'lash ularning taqdimotiga ta'sir qilmaydi. WPF ma'lumotlar taqdimotini boshqarish uchun ma'lumotlar shablonlarini taqdim etadi.
  • O'rnatilgan boshqaruv elementlari to'plami, tugma, menyu, katakchalar va ro'yxat oynasi kabi narsalarni o'z ichiga olgan WPF tarkibida taqdim etiladi.
  • Maxsus majburiy xususiyatlarni qo'shish uchun bog'liqlik xususiyatlarini xatti-harakatlar yoki biriktirilgan xususiyatlarga qo'shish mumkin.
  • WPF-da kuchli kontseptsiya bu boshqaruvni tashqi ko'rinishdan mantiqiy ajratishdir.
    • Vizual ko'rinishini butunlay o'zgartirish uchun boshqaruv shablonini bekor qilish mumkin.
    • Boshqaruv tarkibida yuqori darajadagi boshqaruvni ta'minlashga imkon beradigan har qanday boshqa boshqaruv yoki tartibni o'z ichiga olishi mumkin.
  • Xususiyatlari saqlangan rejim grafikalar. Displeyni qayta bo'yash har doim ham zarur emas.

Media xizmatlari

  • WPF vektorli va raster tasvirlar, audio va video kabi keng tarqalgan media elementlari bilan foydalanuvchi interfeyslarini yaratish uchun yaxlit tizimni taqdim etadi. WPF shuningdek animatsiya tizimini va 2D / 3D renderlash tizimini taqdim etadi.[11]
  • WPF o'rnatilgan cho'tkalar, ruchkalar, geometriyalar va transformatsiyalar to'plami bilan birgalikda 2 o'lchovli grafikalar uchun shakl primitivlarini taqdim etadi.
  • WPF-dagi 3D imkoniyatlari Direct3D tomonidan taqdim etilgan to'liq funktsiyalar to'plamining bir qismidir. Biroq, WPF foydalanuvchi interfeyslari, hujjatlar va ommaviy axborot vositalari kabi boshqa funktsiyalar bilan qattiqroq integratsiyani ta'minlaydi. Bu 3D foydalanuvchi interfeyslari, 3D hujjatlari yoki 3D ommaviy axborot vositalariga ega bo'lishga imkon beradi.
  • BMP, JPEG, PNG, TIFF, eng keng tarqalgan rasm formatlarini qo'llab-quvvatlash mavjud. Windows Media Photo, GIF va ICON.
  • WPF video formatlarini qo'llab-quvvatlaydi WMV, MPEG va ba'zilari Ovi sukut bo'yicha fayllar, lekin u mavjud Windows Media Player ostida ishlaydigan WPF unga o'rnatilgan barcha kodeklardan foydalanishi mumkin.

Shablonlar

  • WPF-da siz element ko'rinishini to'g'ridan-to'g'ri, uning xususiyatlari orqali yoki bilvosita shablon yoki uslub bilan belgilashingiz mumkin. Eng sodda uslub - bu bitta xususiyat atributi bilan foydalanuvchi interfeysi elementiga qo'llanilishi mumkin bo'lgan xususiyat sozlamalarining kombinatsiyasi. Shablonlar - bu sizning WPF dasturingiz qismlari uchun muqobil foydalanuvchi interfeysini aniqlash mexanizmi. WPF-da bir nechta shablon turlari mavjud (ControlTemplate, DataTemplate, HierarchicalDataTemplate va ItemsPanelTemplate).

Shablonlarni boshqarish

  • WPF-da barcha interfeyslarni boshqarish elementlari asosida yangi kompozitsion model yotadi. Har qanday boshqaruv bir yoki bir nechta "ingl." Dan iborat. Ushbu vizual pastki elementlar WPF tomonidan ierarxik vizual daraxtga aylantiriladi va oxir-oqibat GPU tomonidan taqdim etiladi. WPF boshqaruv elementlari standart Windows boshqaruvlari uchun o'ralgan emasligi sababli, ularning interfeysi boshqaruvning odatdagi ishiga ta'sir qilmasdan tubdan o'zgartirilishi mumkin.
  • WPF-dagi har bir boshqaruv elementida o'zining vizual daraxtini belgilaydigan standart "shablon" mavjud. Standart shablon boshqaruv muallifi tomonidan yaratilgan va uni boshqa ishlab chiquvchilar va dizaynerlar almashtirishi mumkin. O'zgartirilgan foydalanuvchi interfeysi ControlTemplate ichiga joylashtirilgan.

Ma'lumotlar shablonlari

  • WPF moslashuvchan ma'lumotlarni bog'lash tizimiga ega. UI elementlarini to'ldirish va asosiy ma'lumotlar modelidagi ma'lumotlar bilan sinxronlashtirish mumkin. Bog'langan ma'lumotlar uchun oddiy matnni ko'rsatish o'rniga, WPF vizual daraxtga ko'rsatilishidan oldin ma'lumotlar shablonini (.NET turlari uchun almashtiriladigan interfeys) qo'llashi mumkin.

Animatsiyalar

  • WPF kadrlarga asoslangan yondashuvdan farqli o'laroq, vaqtga asoslangan animatsiyalarni qo'llab-quvvatlaydi. Bu animatsiya tezligini tizim qanday ishlashidan ajratib turadi.
  • WPF taymerlar orqali past darajadagi animatsiyani va Animatsiya sinflari orqali animatsiyalarning yuqori darajadagi abstraktlarini qo'llab-quvvatlaydi.
    • Har qanday WPF elementi xususiyati, qaramlik xususiyati sifatida ro'yxatdan o'tgan ekan, uni jonlantirish mumkin.
    • Animatsiya darslari animatsiya qilinadigan .NET xususiyatiga asoslangan. Masalan, element rangini o'zgartirish ColorAnimation klassi bilan va elementning kengligini animatsiya qilish (u dubl deb yoziladi) DoubleAnimation klassi bilan amalga oshiriladi.
  • Animatsiyalarni Storyboard-larga birlashtirish mumkin.
    • Storyboard - bu animatsiyalarni boshlash, to'xtatish, pauza qilish va boshqacha tarzda boshqarishning asosiy usuli.
  • Animatsiyalar tashqi hodisalar, shu jumladan foydalanuvchi harakati bilan qo'zg'atilishi mumkin.[12]
  • Sahnalarni qayta ko'rib chiqish vaqtni keltirib chiqaradi.[12]
  • Taqdimot taymerlari WPF tomonidan ishga tushiriladi va boshqariladi.[12]
  • Animatsiya effektlari ob'ektga qarab belgilanishi mumkin, unga to'g'ridan-to'g'ri kirish mumkin XAML belgilash.[12]

Tasvirlash

  • WPF tabiiy ravishda kira oladi Windows tasvirlash komponenti (WIC) kodi va API-lari, ishlab chiquvchilarga o'ziga xos rasm fayl formatlari uchun rasm kodeklarini yozish imkoniyatini beradi.

Effektlar

  • WPF 3.0 Bitmap effektlarini (BitmapEffect klassi) ta'minlaydi, bu Visual uchun qo'llaniladigan raster effektlar. Ushbu raster effektlar GPU tomonidan tezlashtiriladigan qo'shimcha qurilmalarda emas, balki boshqariladigan kodda va Vizualning majburiy ko'rsatilishida yoziladi. BitmapEffects .NET 3.5 SP 1 da eskirgan.
  • .NET Framework 3.5 SP1 effekt sinfini qo'shadi, bu Pixel-Shader 2.0 effekti bo'lib, u vizualga qo'llanilishi mumkin, bu esa barcha ko'rsatuvlarning GPU-da qolishiga imkon beradi.
  • Effect klassi kengaytirilib, dasturlarga o'zlarining shader effektlarini belgilashga imkon beradi.
  • Effekt klassi .NET 3.5 SP1 va 4.0 da ikkita BlurEffect va DropShadowEffect effektlari o'rnatilgan. Oldindan eskirgan BitmapEffect klassi tomonidan taqdim etilgan OuterGlowBitmapEffect, EmbossBitmapEffect va BevelBitmapEffect uchun to'g'ridan-to'g'ri almashtirishlar mavjud emas. Biroq, Effect klassi bilan bir xil natijalarga erishishning boshqa usullari mavjud. Masalan, ishlab chiquvchilar DropShadowEffect-dan ShadowDepth-ni 0 ga o'rnatgan holda tashqi yorug'lik effektini olishlari mumkin.
  • BitmapEffect klassi .Net Framework 3.5 SP1-da eskirgan deb belgilangan bo'lsa-da, uni ishlatishga hali ham ruxsat berildi va bu effektlar hali ham to'g'ri ishlaydi. .Net Framework 4.0 da BitmapEffect klassi eskirgan edi - BitmapEffect-ga havola qilingan kod hali ham xatosiz tuziladi, ammo hech qanday ta'sir ko'rsatilmaydi.

Hujjatlar

  • WPF tabiiy ravishda sahifalangan hujjatlarni qo'llab-quvvatlaydi. Bu beradi DocumentViewer belgilangan tartibli hujjatlarni o'qish uchun mo'ljallangan sinf. The FlowDocumentReader sinf har xil ko'rish rejimlarini taklif qiladi, masalan, sahifa boshiga yoki aylantiriladigan va boshqa matnni qaytaradi agar ko'rish maydoni o'lchamlari o'zgartirilgan bo'lsa.
  • Mahalliy qo'llab-quvvatlaydi XML qog'oz spetsifikatsiyasi hujjatlar.
  • Sahifalangan hujjatlarni o'qish va yozishni qo'llab-quvvatlaydi Paket konventsiyalarini oching.

Matn

  • WPF-da mavjud bo'lmagan bir qator matnlarni ko'rsatish xususiyatlari mavjud GDI. Bu birinchi Microsoft dasturlash interfeysi OpenType dasturiy ta'minot ishlab chiquvchilariga, OpenType, TrueType va OpenType CFF-ni qo'llab-quvvatlaydigan funktsiyalar (Shriftning ixcham formati shriftlar.
  • OpenType tipografik xususiyatlarini qo'llab-quvvatlash quyidagilarni o'z ichiga oladi:
  • WPF matnlarni ko'rib chiqadi Unicode va tizim sozlamalari kabi global sozlamalardan mustaqil matnlarni boshqaradi. Bundan tashqari, yozuvning yo'nalishini (vertikalga nisbatan vertikalga qarab) shrift nomidan mustaqil ravishda foydalanishga imkon beradigan qayta tiklash mexanizmlari mavjud; bir tilli shriftlar guruhidan foydalangan holda, kompozit shriftlardan xalqaro shriftlarni yaratish; kompozit shriftlarni joylashtirish. Shriftni bog'lash va shriftni o'chirish to'g'risidagi ma'lumotlar portativ XML faylida, kompozit shrift texnologiyasidan foydalangan holda saqlanadi.[13] XML fayli kengaytmaga ega .CompositeFont.
  • WPF matnli dvigateli ham o'rnatilganni qo'llab-quvvatlaydi imlo tekshiruvi. Shuningdek, qatorlar orasidagi masofani avtomatik ravishda uzatish, xalqaro matnni takomillashtirish, tilni boshqarish bilan chiziqlarni buzish, tire va soyalar, loyqalanish, porlash, aylantirish va hk kabi asoslash, bitmap effektlari, o'zgartirilishi va matn effektlari ham jonlantirilgan matnni qo'llab-quvvatlaydi; bu animatsiya qilingan gliflarga, shuningdek, matnning pozitsiyasi, hajmi, rangi va xiralashganligi real vaqtda o'zgarishiga taalluqlidir.
  • WPF-ning matnli uzatilishi avanslardan foydalanadi ClearType pastki pikselli joylashishni aniqlash, tabiiy oldinga kenglik, Y yo'nalishidagi anti-aliasing, apparat tezlashtirilgan matnni ko'rsatish, shuningdek, video xotirada oldindan taqdim etilgan matnni agressiv keshlash.[14] Eski WPF 3.x dasturlarida ClearType-ni o'chirib bo'lmaydi.[15] GDI yoki GDI + da ClearType-dan farqli o'laroq, WPF ClearType gliflarni gorizontal ravishda pikselga o'tkazmaydi, bu esa ba'zi foydalanuvchilar tomonidan yoqmagan kontrastni yo'qotishiga olib keladi.[16] Matnni ko'rsatish mexanizmi WPF 4.0-da qayta yozilgan va bu muammoni to'g'irlagan.[17]
  • Gliflarning keshlash darajasi video kartaga bog'liq. DirectX 10 ta karta shrift gliflarini keshlash imkoniyatiga ega video xotira, so'ngra kompozitsiyani (belgilar gliflarini to'g'ri tartibda, to'g'ri oraliq bilan yig'ish), alfa-aralashtirish (anti-aliasing dasturini) va RGB aralashmasini (ClearType sub-pikselli rang hisob-kitoblari) to'liq apparatda bajaring. Bu shuni anglatadiki, har bir shriftda faqat asl gliflar video xotirada bir marta saqlanishi kerak (Microsoft har bir shrift uchun 2 MB video xotirani talab qiladi deb taxmin qiladi) va boshqa operatsiyalar, masalan, boshqa grafikalar ustiga taxallusli matnni ko'rsatish Videoni o'z ichiga olgan holda, protsessor tomonidan hech qanday hisoblash kuchisiz amalga oshirilishi mumkin. DirectX 9 kartalari faqat alfa-aralashtirilgan gliflarni xotirada keshlash imkoniyatiga ega, shuning uchun uni protsessordan videofilmga uzatmasdan oldin glif tarkibini va alfa-aralashtirishni boshqarish kerak. Ushbu qisman ko'rsatilgan gliflarni keshlash uchun ko'proq xotira talab etiladi (Microsoft har bir jarayon uchun 5 MB). DirectX 9-ni qo'llab-quvvatlamaydigan kartalarda qo'shimcha tezlashtirilgan matnni ko'rsatish qobiliyatlari mavjud emas.

Birgalikda ishlash

  • Windows shakllari dan foydalanish orqali ham mumkin ElementHost va WindowsFormsHost sinflar.

WinForms-dan foydalanishni yoqish uchun ishlab chiquvchi buni WPF C # kodidan bajaradi:

 System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop ();

Muqobil kirish

  • WPF qo'llab-quvvatlaydi raqamli siyoh bilan bog'liq funktsionallik.
  • WPF 4.0 ko'p sensorli kiritishni qo'llab-quvvatlaydi Windows 7 va undan yuqori.

Kirish imkoniyati

  • WPF qo'llab-quvvatlaydi Microsoft UI avtomatizatsiyasi ishlab chiquvchilarga qulay interfeyslarni yaratishga imkon berish.
  • Bu API shuningdek, avtomatlashtirilgan test skriptlari interfeysi bilan o'zaro aloqada bo'lishiga imkon beradi.[18]

XAML

Muvaffaqiyatdan keyin belgilash tillari veb-ishlab chiqish uchun WPF eXtensible Application Markup Language-ni taqdim etadi (XAML; /ˈzæmal/) ga asoslangan XML. XAML dastur foydalanuvchi interfeyslarini rivojlantirishning yanada samarali usuli sifatida ishlab chiqilgan.[19]XAML-ning WPF-ga keltiradigan o'ziga xos afzalligi shundaki, XAML butunlay deklarativ Til, ishlab chiquvchiga (yoki dizaynerga) komponentlarning xatti-harakatlari va integratsiyasini ishlatmasdan tavsiflashga imkon beradi protsessual dasturlash. Garchi XAML-da butun bir dastur to'liq tuzilishi kamdan-kam bo'lsa-da, XAML-ning kiritilishi dastur dizaynerlariga dasturlarni ishlab chiqish tsikliga yanada samarali hissa qo'shish imkonini beradi. Foydalanish XAML foydalanuvchi interfeyslarini rivojlantirish, shuningdek, yaxshi me'moriy printsip deb hisoblangan model va ko'rinishni ajratishga imkon beradi. XAML-da elementlar va atributlar asosiy API-lardagi sinflar va xususiyatlarga mos keladi.

Veb-ishlab chiqishda bo'lgani kabi, ikkala maket ham, o'ziga xos mavzular ham belgilashga juda mos keladi, ammo XAML ikkalasi uchun ham talab qilinmaydi. Darhaqiqat, WPF-ning barcha elementlari a-da kodlanishi mumkin .NET til (C #, VB.NET ). XAML kodi oxir-oqibat barcha .NET tillari boshqariladigan assambleyada to'planishi mumkin.

Arxitektura

WPF arxitekturasi. Moviy elementlar Windows komponentlari; jigarrang - bu WPF komponentlari.

WPF arxitekturasi ikkalasini ham qamrab oladi boshqariladigan kod va mahalliy kod komponentlar. Biroq, jamoatchilik API ta'sir qilish faqat boshqariladigan kod orqali amalga oshiriladi. WPF-ning aksariyati boshqariladigan kodda bo'lsa, WPF dasturlarini taqdim etadigan kompozitsion dvigatel mahalliy komponent hisoblanadi. Nomlangan Media integratsiyasi qatlami (MIL) va yashaydi milcore.dll. Bu to'g'ridan-to'g'ri interfeys bilan DirectX va animatsion konstruktsiyalarni yuqori darajada namoyish etish maqsadida 2D va 3 o'lchamli sirtlarni taymer tomonidan boshqariladigan sirt tarkibidagi manipulyatsiyani va kompozitsion WPF dasturining alohida elementlari dasturning UI-ni ifodalaydigan va uni ekranga chiqaradigan yakuniy 3D "sahna" ga.[20][21] The Stol oynasi menejeri shuningdek ish stoli va deraza tarkibi uchun MIL-dan foydalanadi.[22] Media kodeklari boshqarilmaydigan kodlarda ham amalga oshiriladi va ular sifatida yuboriladi windowscodecs.dll.[20] Boshqariladigan dunyoda, PresentationCore (taqdimot.dll) MIL uchun boshqariladigan paketni taqdim etadi va WPF uchun asosiy xizmatlarni amalga oshiradi,[20] shu jumladan mulkni o'rnatuvchilar va iste'molchilar o'rtasidagi bog'liqliklardan xabardor bo'lgan mulk tizimi, xabarlarni dispetcherlik tizimi orqali Dispetcher foydalanuvchi interfeysi elementlarini o'lchash kabi tartib tizimini amalga oshirishi mumkin bo'lgan ixtisoslashtirilgan voqealar tizimi va xizmatlarini amalga oshirish maqsadi.[21] TaqdimotFramework (presentframework.dll) oxirgi foydalanuvchining taqdimot xususiyatlarini, shu jumladan maketlarni, vaqtga bog'liq, hikoyalar taxtasiga asoslangan animatsiyalar va ma'lumotlarni bog'lashni amalga oshiradi.[21]

WPF meros qilib olgan ob'ektlar uchun mulk tizimini ochib beradi Qaramlik ob'ekti, bu mulkni iste'molchilar o'rtasidagi bog'liqliklarni biladi va xususiyatlarning o'zgarishiga asoslangan harakatlarni keltirib chiqarishi mumkin. Xususiyatlar qattiq kodlangan qiymatlar yoki natijalarni baholaydigan aniq ifodalar bo'lgan iboralar bo'lishi mumkin. Dastlabki nashrda esa qo'llab-quvvatlanadigan iboralar to'plami yopiq.[21] Xususiyatlarning qiymati ota-onalardan ham meros bo'lib o'tishi mumkin. WPF xususiyatlarini qo'llab-quvvatlash bildirishnomalarni o'zgartirish, bog'langan holda chaqiradi xatti-harakatlar har qanday elementning biron bir xususiyati o'zgarganda. Maxsus xatti-harakatlar WPF ob'ektlari to'plamida mulkni o'zgartirish to'g'risidagi xabarnomani tarqatish uchun ishlatilishi mumkin. Bu layout tizimi tomonidan mulkni o'zgartirishda tartibni qayta hisoblashni boshlash uchun ishlatiladi va shu bilan deklarativ dasturlash WPF uchun uslub, bunda ranglarni va joylashishni belgilashdan tortib, animatsion elementlarga qadar deyarli hamma narsani xususiyatlarni o'rnatish orqali erishish mumkin.[21] Bu WPF dasturlarini yozishga imkon beradi XAML, bu kalit so'zlar va atributlarni to'g'ridan-to'g'ri WPF sinflari va xususiyatlariga bog'lash orqali deklarativ markirovka tili.[23]

WPF dasturining interfeys elementlari sinf sifatida saqlanadi Vizual ob'ektlar. Vizual ob'ektlar a ga boshqariladigan interfeysni taqdim etadi kompozitsion daraxt Media Integration Layer (MIL) tomonidan ta'minlanadi. WPF ning har bir elementi bir yoki bir nechtasini yaratadi va qo'shadi kompozitsion tugunlar daraxtga. Tarkib tugunlarida boshqa vizual atributlar qatorida qirqish va o'zgartirish bo'yicha ko'rsatmalar kabi ko'rsatmalar mavjud. Shunday qilib, butun dastur tizim xotirasida buferda saqlanadigan kompozitsiya tugunlari to'plami sifatida namoyish etiladi. Vaqti-vaqti bilan MIL daraxt bo'ylab yurib, har bir tugundagi ko'rsatma ko'rsatmalarini bajaradi va shu bilan har bir elementni DirectX yuzasiga qo'shib, keyinchalik ekranda ko'rsatiladi. MIL foydalanadi rassom algoritmi, bu erda barcha komponentlar ekranning orqa qismidan old tomoniga uzatiladi, bu esa shaffoflar kabi murakkab effektlarga osonlikcha erishish imkonini beradi. Ushbu ishlash jarayoni GPU yordamida tezlashtirilgan apparat hisoblanadi.[21] Kompozitsiya daraxti MIL tomonidan keshlanib, a saqlanib qolgan rejim grafikasi, shuning uchun kompozitsiya daraxtidagi har qanday o'zgarishlar faqat MILga bosqichma-bosqich etkazilishi kerak. Bu shuningdek ekranni qayta bo'yashni boshqarish dasturlarini bo'shatadi; MIL buni o'zi bajarishi mumkin, chunki u barcha kerakli ma'lumotlarga ega. Animatsiyalar kompozitsiya daraxtidagi vaqtni keltirib chiqaradigan o'zgarishlar sifatida amalga oshirilishi mumkin. Foydalanuvchi ko'rinadigan tomonida animatsiya deklarativ tarzda, ba'zi bir animatsiya effektini xususiyat orqali ba'zi elementga o'rnatish orqali va davomiyligini belgilaydi. The kod orqasida orqali daraxtning aniq tugunlarini yangilaydi Vizual Belgilangan vaqt oralig'ida ikkala oraliq holatni va elementning oxirgi holatini ifodalash uchun moslamalar. MIL elementga avtomatik ravishda o'zgartirish kiritadi.[24]Barcha WPF dasturlari ikkita satrdan boshlanadi: biri interfeysni boshqarish uchun, ikkinchisi esa ishlash va qayta bo'yash uchun ishlov berish uchun.[25] Renderlash va qayta bo'yash dasturlarning aralashuvisiz WPF tomonidan boshqariladi. UI ipi dispetcherni joylashtiradi (masalan Dispetcher maqsadi) bajarilishi kerak bo'lgan UI operatsiyalarining navbatini saqlaydi (. ning daraxti sifatida) Vizual ob'ektlar), ustuvorligi bo'yicha tartiblangan. UI hodisalari, shu jumladan maketga ta'sir qiladigan xususiyatni o'zgartirish va foydalanuvchi bilan o'zaro bog'liq voqealar, voqealar uchun ishlovchilarni chaqiradigan dispetcherda navbatda turadi. Microsoft voqea ishlovchilariga faqat xususiyatlarni yangilashni tavsiya qiladi, chunki ular dasturning javobgarligi uchun yangi tarkibni aks ettiradi, shu bilan yangi tarkib fon fonida olinadi yoki olinadi.[25] Render iplari ingl. Daraxt nusxasini oladi va qaysi komponentlar ko'rinishini hisoblab daraxtni aylanib o'tadi va Direct3D sirtlariga o'tkazadi. Render iplari vizual daraxtni keshlaydi, shuning uchun faqat daraxtdagi o'zgarishlar haqida xabar berish kerak, bu faqat o'zgartirilgan piksellarni yangilashga olib keladi. WPF kengaytiriladigan maket modelini qo'llab-quvvatlaydi. Layout ikki bosqichga bo'linadi: O'lchov; va Tartibga solish. The O'lchov faza rekursiv ravishda barcha elementlarni chaqiradi va ularning hajmini aniqlaydi. In Tartibga solish Bola elementlari ota-onalari tomonidan rekursiv ravishda joylashtirilgan bo'lib, ularni chaqirishadi tartibi algoritmi ishlatilayotgan tartib modulining.[21][26]

Asboblar

Windows Presentation Foundation dasturlarini ishlab chiqish uchun bir qator ishlab chiqish vositalari mavjud.

Microsoft vositalari

  • Microsoft Visual Studio ishlab chiquvchiga yo'naltirilgan IDE Visual Studio 2008 dan boshlab, XAML muharriri va WPF ingl. dizayneri kombinatsiyasini o'z ichiga oladi.
  • Visual Studio 2008 dan oldin WPF dizayner Cider deb nomlangan plagin, WPF oynalari, sahifalari va foydalanuvchi boshqaruvlarini yaratish uchun WYSIWYG muharririning asl nusxasi edi. Visual Studio 2005 uchun a sifatida mavjud edi .NET Framework 3.0 uchun Visual Studio 2005 kengaytmalari CTP WPF-ning dastlabki chiqarilishi uchun.[27]
  • Microsoft Visual Studio Express 2008 va undan keyingi nashrlarda, xususan Visual C # Express va Visual Basic Express-da, WPF dizaynerlari birlashtirilgan.
  • Microsoft aralashmasi 2P va 3D grafikalar, matn va shakllar tarkibiga ega WPF dasturlarini yaratish uchun artboardni ta'minlaydigan dizaynerga yo'naltirilgan vosita. U hosil qiladi XAML bu boshqa vositalarga eksport qilinishi mumkin va Microsoft Visual Studio bilan birgalikda echim (sln fayllari) va loyiha formatlari (csproj, vbproj).
  • Microsoft Expression Design ga eksport qilish uchun bitmap va 2D-vektorli grafik vositadir XAML.
  • XAMLPad .NET Framework SDK-ga kiritilgan engil vositadir. U split ekran interfeysi maketi yordamida XAML fayllarini yaratishi va taqdim etishi mumkin. Bundan tashqari, paneldagi belgilashning daraxt ko'rinishini beradi.

Uchinchi tomon vositalari

  • SharpDevelop, ochiq manbali .NET IDE, WPF dasturini loyihalash qobiliyatlarini o'z ichiga oladi. Bu Visual Studio-ga bepul alternativ.[28]
  • PowerBuilder .NET by Sybase - bu PowerBuilder kodini, grafik ob'ektlarni XAML-ga tarjima qiluvchi va dasturni WPF-ning maqsadi sifatida joylashtirishga imkon beruvchi 4GL vositasi.[29]

Joylashtirish

WPF-ning tarqatish modeli ikkalasini ham taklif qiladi mustaqil va XAML brauzer dasturlari (XBAP, "ex-bap" deb talaffuz qilinadi) lazzatlar. Ikkala turdagi dasturlarni yaratish uchun dasturlash modeli o'xshash.

Mustaqil dasturlar bu kabi dasturlardan foydalangan holda kompyuterga o'rnatilgan dasturlardir Bir marta bosing yoki Windows Installer (MSI) va ish stolida ishlaydigan. Mustaqil dasturlar ko'rib chiqiladi to'liq ishonch va kompyuter resurslaridan to'liq foydalanish huquqiga ega.

XAML brauzer dasturlari (XBAP-lar ) ichida joylashgan dasturlar veb-brauzer. Pre-.NET4 XBAP dasturlari a da ishlaydi qisman ishonch qum qutisi kompyuterning resurslaridan to'liq foydalanish huquqiga ega emas va WPF-ning barcha imkoniyatlaridan foydalana olmaydi. Joylashtirilgan muhit kompyuterni zararli dasturlardan himoya qilish uchun mo'ljallangan. XBAP-lar .NET 4 da to'liq ishonchli dastur sifatida ishlashi mumkin, bu kompyuter resurslaridan to'liq foydalanish imkoniyatiga ega. XBAP-ni HTML-sahifadan boshlash yoki aksincha, muammosiz (xavfsizlik va o'rnatish uchun ko'rsatma yo'q). Brauzerda ishlaydigan dastur haqida tasavvurga ega bo'lishiga qaramay, u aslida brauzerdan farqli ravishda amalga oshiriladigan protsessorsiz ishlaydi.

Internet Explorer

.NET Framework 3.0 versiyasidan boshlab, XBAP'lar faqat IE-da ishlaydi.

Firefox-ni qo'llab-quvvatlash

.NET Framework 3.5 SP1 chiqarilishi bilan XBAP Mozilla Firefox-da qo'shilgan kengaytma yordamida ishlaydi. Microsoft bilan kelishilgan holda, xavfsizlikning uzoqdan jiddiy zaifligi sababli Mozilla 2009 yil 16 oktyabrda Firefox plaginini va kengaytmasini qo'shimchalar blokirovka ro'yxatiga qo'shdi.[30] Ikki kundan keyin blok olib tashlandi. Windows 7-da Firefox plagini sukut bo'yicha ishlamaydi.[31] .NET Framework 3.5 SP1-ni qayta o'rnatishda plagin o'rnatiladi va Firefox-da XBAP dasturlari uchun yordam qo'shiladi.[32] Shu bilan bir qatorda, plaginni nusxa ko'chirish DLL-lar ishlayotgan Windows XP / Vista-dan Mozilla Firefox-ning plaginlari katalogiga qadar XBAP-dasturlarni qo'llab-quvvatlash tiklanadi.[32] WPF plagin DLL-lari quyidagi kataloglarda joylashgan (Framework versiyasiga qarab):

3.5 [SP1]
C: Windows Microsoft.NET Framework v3.5 WPF NPWPF.dll
4.0
C: Windows Microsoft.NET Framework WPF NPWPF.dll

Microsoft Silverlight

Silverlight (WPF / E kodli nomi) - eskirgan o'zaro faoliyat brauzer brauzer plagini unda WPF-ga asoslangan texnologiya (shu jumladan XAML)[33] bir nechta operatsion tizimlarga video, vektorli grafikalar va animatsiyalar kabi xususiyatlarni taqdim etdi Windows 7, Windows Vista, Windows XP va Mac OS X. Microsoft cheklangan miqdordagi uchinchi tomon ishlab chiqaruvchilariga portlarda aniq ishlashga ruxsat berdi Linux tarqatish.[34] Xususan, u qo'shimcha sifatida taqdim etildi Mozilla Firefox, Internet Explorer 6 va undan yuqori, Gugl xrom 42 va undan pastda va Apple Safari.

.NET Micro Framework

The .NET Micro Framework WPF-ga asoslangan holda GUI ob'ekti modelini o'z ichiga oladi, ammo XAML-ni qo'llab-quvvatlamaydi.

Adabiyotlar

  1. ^ Natan, Adam (2006). Windows taqdimot fondi ishga tushirildi. Pearson ta'limi. ISBN  9780132715621.
  2. ^ dotnet-bot. "XAML haqida umumiy ma'lumot (WPF)". msdn.microsoft.com. Olingan 31 mart 2018.
  3. ^ Sotadi, Kris; Griffits, Yan (2007). WPF dasturlash: Windows taqdimot fondi bilan Windows interfeysini yaratish. "O'Reilly Media, Inc.". ISBN  9780596554798.
  4. ^ ".NET". Microsoft. Olingan 31 mart 2018.
  5. ^ "Microsoft .NET Framework 3.0 yuklab olish". microsoft.com. Olingan 31 mart 2018.
  6. ^ Silverlight o'quv manbalari. Silverlight.net. 2013-08-29 da olingan.
  7. ^ Martin, Jef (2018 yil 4-dekabr). "Microsoft ochiq manbalari WPF, WinForms va WinUI". Ma'lumot. Olingan 2018-12-06.
  8. ^ Hanselman, Skott (2018 yil 4-dekabr). "WPF, WinForms va WinUI-ni e'lon qilish ochiq manbaga o'tmoqda". Olingan 2018-12-06.
  9. ^ "Windows taqdimot fondi bilan tanishish". msdn.microsoft.com. Olingan 31 mart 2018.
  10. ^ a b "WPF 3.5-da qanday yangiliklar bor? Mana o'n beshta ajoyib xususiyatlar ..." Olingan 2007-10-14.
  11. ^ Grafika va multimedia. Msdn.Microsoft.com. 2013-08-29 da olingan.
  12. ^ a b v d "Animatsiya haqida umumiy ma'lumot". MSDN. Olingan 2007-10-14.
  13. ^ "Windows taqdimot fondidagi tipografiya". msdn.microsoft.com. Olingan 31 mart 2018.
  14. ^ dotnet-bot. "ClearType haqida umumiy ma'lumot". msdn.microsoft.com. Olingan 31 mart 2018.
  15. ^ "Antialiasingni o'chirib qo'yish". social.msdn.microsoft.com. Olingan 31 mart 2018.
  16. ^ "VP 2008 RTM bilan WPF bo'yicha birinchi fikrlarim va bir nechta savollar". social.msdn.microsoft.com. Olingan 31 mart 2018.
  17. ^ WPF 4 (VS 2010 va .NET 4.0 seriyalari) - ScottGu-ning blogi. Weblogs.asp.net. 2013-08-29 da olingan.
  18. ^ Xanskiy. "UI avtomatizatsiyasiga umumiy nuqtai". msdn.microsoft.com. Olingan 31 mart 2018.
  19. ^ MacDonald, Metyu (2010). VB 2010 yilda Pro WPF: .NET 4 da Windows taqdimot fondi. Apress. ISBN  9781430272403.
  20. ^ a b v Kris Anderson. "MIL ma'lumotlari". Olingan 2007-10-14.
  21. ^ a b v d e f g "WPF Architecture". MSDN. Olingan 2007-10-14.
  22. ^ Scheter, Greg (2006 yil 9-iyun). "DWM-da WPF kontseptsiyasi va texnologiyasidan qanday foydalanilmoqda". MSDN bloglari. Microsoft. Olingan 2015-07-27.
  23. ^ "Visual Studio'da WPF dasturini yaratish". docs.microsoft.com.
  24. ^ "WPF Architecture". docs.microsoft.com.
  25. ^ a b "Tarmoq modeli". MSDN. Olingan 2007-10-14.
  26. ^ "Layout System". MSDN. Olingan 2007-10-14.
  27. ^ Olingan http://www.microsoft.com/en-au/download/details.aspx?id=23072.
  28. ^ [email protected], Kristof Uill -. "SharpDevelop @ ic # code". icsharpcode.net. Olingan 31 mart 2018.
  29. ^ Boy dasturlarni ishlab chiqish vositasi / deklarativ dasturlash muhiti | PowerBuilder - Sybase Inc.. Sybase.com. 2013-08-29 da olingan.
  30. ^ "NET Framework Assistant xavfsizlik nuqtai nazaridan qurolsizlanishiga to'sqinlik qildi". Olingan 2009-10-17.
  31. ^ "Firefox-ning .NET dasturini joylashtirishni qo'llab-quvvatlash uchun qo'shimchalari". Olingan 2010-09-07.
  32. ^ a b "Windows 7 da firefox uchun Xbap plaginlari". Olingan 2010-09-29.
  33. ^ "Rasmiy Microsoft ASP.NET sayti". Rasmiy Microsoft ASP.NET sayti. Olingan 31 mart 2018.
  34. ^ "Silverlight 1.0 chiqdi va Linux uchun Silverlight e'lon qilindi". Olingan 2007-09-05.

Bibliografiya

  • Adam Natan: Windows taqdimot fondi (WPF), 2006 yil 21-dekabr, Sams Publishing, ISBN  0-672-32891-7
  • Kris Anderson: Muhim Windows taqdimot fondi (WPF), 2007 yil 11 aprel, Addison-Uesli, ISBN  0-321-37447-9
  • Kris Sells, Yan Griffits: WPF dasturlash, 2007 yil 28-avgust, O'Reilly Media, ISBN  0-596-51037-3
  • Arlen Feldman, Maxx Daymon: Visual Studio 2008 bilan amaldagi WPF, 2008 yil 21-noyabr, Manning nashrlari, ISBN  1-933988-22-3

Tashqi havolalar