Pro WPF in C# 2010
وقتی که NET. وارد صحنه شد، سیل عظیمی از تکنولوژی را نیز همراه خود معرفی کرد. دیگر راههای جدید زیادی برای نوشتن برنامههای وب (ASP.NET) ، ارتباط با پایگاههای داده (ADO.NET) وجود داشت و همچنین زبانهای جدید نوع امن(C# و VB.NET) و زمان اجرا مدیریت شده(CLR) را معرفی کرد.کمترین چیز در میان این تکنولوژیهای جدید، Windows Forms بود که در حقیقت یک کتابخانه کلاس برای ساخت برنامههای ویندوزی است.
اگرچه ، Windows Forms ابزاری با امکانات زیاد و پخته است ولی به زیر ساختهای بنیادی ویندوز گره خورده و در طول ده سال گذشته تغییر زیادی نکرده است.به طور قابل توجهی، Windows Forms برای ساختن ظاهر بصری عناصر رابط کاربری مانند دکمهها و چک باکسها و جعبههای متنی، از APIهای ویندوز کمک میگیرد. در نتیجه، این عناصر اساسا قابل شخصی سازی نیستند.
برای نمونه،اگر بخواهید که یک دکمهی درخشان شیک ایجاد کنید، شما باید خودتان با استفاده از مدل نقاشی سطح پایین، یک کنترل کاستوم درست کنید و هر گوشه از این دکمه را با تمامی حالات مختلف آن ،به طور دستی نقاشی کنید و حتی تمام متعلقات آن. در نتیجه ، در صورتی که نقاشی یک کنترل نیز خود جزئی از یک کنترل دیگر باشد،راه خوبی برای نقاشی کردن یک کنترل نیست.همچنین حتی فکرش را هم نکنید بتوانید افکتهای انیمیشنی یا اجرای زنده را پیاده سازی کنید، چون شما باید همهی جزئیات را با دست بکشید.
Windows Presentation Foundation) WPF) همهی اینها را با معرفی مدلی که زیرساختی کاملا متفاوت دارد، تغییر داد.اگرچه WPF شامل کنترلهای استانداردی هست که شما با آنها آشنا هستید، ولی تک تک جعبههای متنی ،کادرها ، فرمها و پس زمینهها را خودش نقاشی میکند.نتیجه این میشود که WPF میتواند ویژگیهای قدرتمند خیلی زیادی را فراهم کنه تا به شما اجازه دهد تا محتویات هر قسمتی از صفحه که نمایش داده میشود را به راحتی تغییر دهید. با استفاده از این امکانات،می توانید ظاهر کنترلهای رایج مانند دکمهها را بدون نوشتن کدی به راحتی آرایش کنید. به طور مشابه، شما میتوانید از Transformation برای چرخاندن، کشیدن یا اریب کردن اشیا یا هر چیزی در رابط کاربری خود استفاده کنید و حتی شما میتوانید از سیستم انیمیشن تو کار wpf قبل از نشان دادن به چشمان کاربر استفاده کنید. چون موتور WPF محتویات یک پنجره را به صورت بخشی از یک عملیات انجام میدهد، میتواند بی نهایت از لایههای کنترلهای روی هم افتاده را مدیریت کند، حتی اگر این کنترلها شکلهای غیر متعارف و شفاف باشند.
WPF دارای زیرساخت قدرتمندی بر اساس DirectX است،APIهای گرافیکی شتابدهندهی سخت افزاری که معمولا در بازیهای کامپیوتری استفاده میشود و این بدین معنی است که بدون سربار کارایی که در Windows Forms با آنها روبرو بودید، به افکتهای گرافیکی غنی ای دست پیدا خواهید کرد.در حقیقت شما به ویژگیهای پیشرفته گرافیکی مانند پشتیبانی از فایلهای ویدئویی و محتویات سه بعدی دست پیدا کرده اید. با استفاده از این ویژگیها و همچنین یک ابزار طراحی خوب، ساخت رابط کاربری و افکتهای بصری چشم نواز که ساخت آنها با Windows Forms امکان پذیر نبود را ممکن میشود.
اگرچه ویژگیهای سه بعدی و افکتهای انیمیشنی بیشترین توجه را در WPF به خود جلب میکنند، این نکته نیز مهم است که از WPF نیز میتوان برای ساخت برنامههای معمولی ویندوزی با کنترلهای استاندارد و ظاهری بصری استفاده نمود. در حقیقت استفاده از کنترلهای استاندارد WPF به آسانی استفاده در Windows Forms هست یا حتی راحت تر.WPF ویژگی هایی که مورد نیاز توسعه دهنگان تجاری است را قدرت بخشیده که شامل مدل انقیاد داده خیلی قدرتمندتر، یک مجموعه کلاس برای چاپ و مدیریت صف چاپها و همچنین ویژگی سند، برای نمایش دادن حجم عظیمی از متنهای قالب دهی شده است. شما همچنین مدلی را در اختیار دارید که از آن میتوانید برای ساخت برنامههای مبتنی بر صفحه، که بدون هیچ محدودیتی از وب سایت بر روی Internet Expleror بدون هشدارهای امنیتی و پرسشهای نصب، اجرا میشوند.
روی هم رفته، WPF، بهترینهای دنیای توسعه برنامههای ویندوز با نوآوریهای ساخت برنامههای مدرن و گرافیکی ترکیب کرده است. اگرجه Windows Forms برای چندین سال دیگر به زندگی خود ادامه میدهد، توسعه دهندگانی که تازه به دنیای توسعه برنامههای ویندوز قدم میگذارند، باید ابتدا به WPF یک نگاهی بندازند.
سرفصلهای این کتاب:
فصل 1: Introducing WPF
فصل 2: XAML
فصل 3: Layout
فصل 4: Dependency Properties
فصل 5: Routed Events
فصل 6: Controls
فصل 7: The Application
فصل 8: Element Binding
فصل 9: Commands
فصل 10: Resources
فصل 11: Styles and Behaviors
فصل 12: Shapes, Brushes, and Transforms
فصل 13: Geometries and Drawings
فصل 14: Effects and Visuals
فصل 15: Animation Basics
فصل 16: Advanced Animations
فصل 17: Control Templates
فصل 18: Custom Elements
فصل 19 : Data Binding
فصل 20: Formatting Bound Data
فصل 21: Data Views
فصل 22: Lists, Grids, and Trees
فصل 23: Windows
فصل 24: Pages and Navigation
فصل 25: Menus, Toolbars, and Ribbons
فصل 26: Sound and Video
فصل 27: 3-D Drawing
فصل 28: Documents
فصل 29: Printing
فصل 30: Interacting with Windows Forms
فصل 31: Multithreading
فصل 32: The Add-In Model
فصل 33: ClickOnce Deployment