.:رویال آی تی:.

× دسته بندی ها

تکنولوژیWPF ( Windows Presentation Foundation) پایان نامه رشته کامپیوتر همراه با پاورپوینت

چکیده

به طور کلی برنامه های ویندوزی از دو امکان، توابع User32 و GDI/GDI+ برای ترسیم عناصر گرافیکی استفاده می‌کنند. شرکت مایکروسافت به دلیل محدودیت هایی که در هر یک از دوبخش فوق، وجود داست، اقدام به ایجاد کتابخانه سطح بالایی به نام DirectX کرد. این ابزار با بهره گیری از توان کارت های گرافیکی با بهره بری بالا، حداکثر توان آن را برای ایجاد گرافیک های قوی به کار می‌برد. اما به دلیل برقراری ارتباط مشکل با آن و نیاز به کد نویسی های زیاد، این ابزار بیشتر در تهیه بازی ها و برنامه های گرافیکی مورد استفاده قرار گرفت و جایگاه زیادی در توسعه برنامه های تجاری پیدا نکرد. تکنولوژی WPF یا Avalon یک زیر سیستم گرافیکی لحاظ شده در دات نت ۳٫۰ به بالا است که باعث جداسازی ساختار UI از منطق Business Logic  می‌گردد. معادل آن (زیر مجموعه ای از آن) در وب هم مورد استفاده قرار می‌گیرد با نامWPF/E  )با نام رمز(SilverLight  و تمامی این مشکلات را مرتفع کرده. WPF از تمامی قدرت DirectX جهت ایجاد گرافیک های ۲ بعدی و ۳ بعدی استفاده می‌کند. همچنین ابزار های بسیاری را جهت طراحی کردن در اختیار شما قرار می‌دهد.[saf]

تکنولوژی های جدید دات نت

همزمان با ظهور نسخه ۳٫۰ دات نت فریم ورک، تکنولوژی های جدیدی نیز به وجود آمد. این تکنولوژی ها، که بر خلاف تصور سطحی و ابتدایی بسیاری از برنامه نویسان درابتدای ظهور آن ها، صرفا اضافه شدن تعدادی دات نت اسمبلی به دات نت اسمبلی های قبلی، تلقی می شد، تغییرات بسیاری را در امر برنامه نویسی دات نت به وجود آورد. تکنولوژی WPF به همراه تکنولوژی های WCF و WWF با نسخه ۳٫۰ دات نت فریم ورک توسط شرکت ماکروسافت معرفی شدند.در ادامه توضیح مختصری راجع به WCF و WWF خواهیم دید و سپس به بحث اصلی، یعنیWPF خواهیم پرداخت.

Windows Communication Foundation

تکنولوژی WCF که مخفف Windows Communication Foundation می باشد، ترکیب شده تکنولوژی های ارتباطی مختلفی که در دات نت فریم ورک ۲٫۰ وجود داشت، می باشد. در دات نت فریم ورک ۲٫۰ ، تکنولوژی های ارتباطی بین سیستم ها عبارت بودند از، ارتباطات بر پایه Soap ، ارتباطات دودویی بهینه شده و…. تکنولوژی WCF که با نام Indigo نیز شناخته می شود، تمامی جنبه های ارتباطی بین سیستم ها را درون خود دارد.

Windows Workflow Doundation

تکنولوژی WWF که مخفف Windows Workflow Foundation می باشد و بیشتر به صورت مخفف WF نشان داده می شود، امکان پیاده سازی و حل مسائل پیچیده دنیای پیرامون خود را که در حالت عادی ممکن است حل آن بسیار پیچییده و دشوار به نظر آید، به صورت بصری و بسیار ساده ارائه می کند. در کل دو شکل Sequential و State Machine را می توانید با WF پیاده سازی کنید. به عنوان نمونه بسیار ساده به راحتی می توانید یک دستور چند شرطی را به صورت کاملا انتزاعی و با امکاناتی که برای طراحی آن موجود است، پیاده سازی نمایید. به عنوان مثال شکل۱-۱نمونه پیاده سازی یک دستور چهار شرطی در سیستم WF از نوع Sequential  می باشد.

مشکلات تکنولوژی­های قبل در شخصی­سازی ابزارها

پس از توضیح و اشارات مختصری درباره تکنولوژی های همپای تکنولوژی WPF که ارتباط بسیار نزدیکی نیز با هم دارند، اینک به معرفی تکنولوژی WPF خواهم پرداخت.  WPF سر آغاز سه کلمه Windows Presentation Foundation می باشد. این تکنولوژی برای NET. طراحی شده است و همچنین تاثیر زیادی بر تکنولوژی­های نمایشی جدیدی مانند HTML و Flash داشته و باعث بهینه سازی سرعت سخت افزار می­گردد. WPF شامل تغییرات بنیادینی در زمینه واسط­ گرافیکی ویندوز از زمان Windows95  می­باشد.

هر کسی که تا به حال در محیط های گرافیکی و یا به اصلاح برنامه نویسان، محیط های ویژوال، برنامه نویسی کرده باشد، یقینا با مفاهیم Windows Application ها که گاها به صورت مخفف WinApp نیز نامیده می شوند، آشنا می باشد. این نوع برنامه نویسی همزمان با ورود سیستم عامل های ویندوز در دنیای کامپیوتر شروع شد و روز به روز با به وجود آمدن زبان های متفاوت جایگاه محبوبتری نزد برنامه نویسان پیدا کرد. در اینجا قصد توضیح دادن این نوع برنامه نویسی را ندارم. فقط نگاهی گذرا به آن خواهم داشت تا مفهوم تکنولوژی WPF برایتان روشن تر گردد. همانطور که می دانید، Windows Application ها، از API های سیستم عامل مربوطه ( که اکثرا ویندوز XP نیز می باشد) برای ترسیم عناصر گرافیکی یا همان عناصر ویژوال، استفاده می کنند. به عنوان مثال برای ترسیم انواع دکمه ها، فرم ها و بسیاری از عناصردیگری که با آن ها آشنا هستید، از توابع API  ویندوز کمک گرفته می شود. همین مسئله باعث ایجاد محدودیت برای برنامه نویسان در ایجاد کنترل های سفارشی با ظاهر دلخواه خود شده بود. اگر چه با ابزار های گرافیکی که در دات نت فریم ورک ۲٫۰ نیز وجود داشت، می توانستیم تا حد خوبی اقدام به ایجاد کنترل های مورد دلخواه خود را بکنیم، اما این موضوع نیاز به دانستن اطلاعات زیاد در مورد ایجاد کنترل های سفارشی و همچنین نوشتن گاها کد های بسیار زیادی جهت ایجاد کنترل مورد نظر می بود. این به آن دلیل بود که قالب و اساس اولیه کنترل ها بسته بود و نمی توانستید به راحتی کنترل ها را شخصی سازی نمایید. در بهترین حالت، یک برنامه نویس ماهر میتوانست با ارث بری از کلاس Control اقدام به ایجاد یک کنترل جدید با ظاهر و امکانات مورد نظر خود بکند. به عنوان مثال تنها یکی از کلاس های کنترل منویی که در شکل۱-۲دیده می­شود  دارای ۱۰۰۰ خط کد به غیر از کدهای تولید شده توسط خود دات نت می باشد. شاید ۱۰۰۰ خط، برای یه برنامه نویس بسیار ناچیز باشد. ولی چنانچه بخواهید تمامی کنترل های برنامه های خود را، خودتان طراحی کنید، می بینید که زمان زیادی از وقت شما صرف نوشتن کد ها می گردد.

این مسئله زمانی نمود بیشتری پیدا میکند که بخواهید، اکثر جنبه های یک کنترل را در کنترل سفارشی خود قرار دهید. به عنوان مثال به دلیل قرار گرفتن حالت های مختلف گرادیان بر روی منو، استفاده از امکانات قبلی مانند ترسیم متن آیتم به صورت اتوماتیک توسط خود منو و یا ترسیم کلید های میان بر آیتم و …. از بین می رود و تمامی این موارد بایستی با کد و توسط شما ایجاد گردد. درست است که می توان از کنترل های ایجاد شده توسط خودتان به کرات و در برنامه های مختلف استفاده کنید و لی تجربه نشان داده است که گاهی نیز مجبور به ایجاد کنترل دیگری شوید. این به این دلیل نیست که شما الزاما کنترل قبلی خود را خوب طراحی نکرده اید . عوامل زیادی می توانند باعث بروز این مورد شوند که پرداختن به آن ها از حوصله این بحث خارج است.

حال که تا حدودی با مشکلات برنامه نویسی های WinApp به روش جاری شدید، در ادامه به معرفی WPF خواهم پرداخت و در ادامه بحث های این آموزش، خواهید دید که WPF چگونه بسیاری از مشکلات موجود را مرتفع می کند.

تکنولوژی WPF به روشی دیگر عمل می کند. در واقع علاوه بر اینکه این تکنولوژی همچنان دارای کنترل های سابقی که آن ها را می شناسید، می باشد، می تواند دسترسی به بیشتر جنبه های کنترل ها را برای شما فراهم کند. در واقع قدرت WPF در این است که اساس و پایه هر کنترلی مانند برنامه نویسی قبل، بسته نیست و این شما هستید که به WPF خواهید گفت که متن روی کنترل را به چه صورتی طراحی کنید. یا پس زمینه کنترل یا کناره های آن را به آن صورتی که شما می گویید طراحی کند. به همین منظور نیز دارای ابزارهای بسیار زیادی جهت کار برای طراحی کنترل های شما مهیا می کند. ابزارهایی مانند قلم موهای گرادیان با تعداد رنگ های نامحدود، انواع ابزار های گرافیکی برای ترسیم شکل دلخواه شما، امکان ایجاد افکت های بسیار زیبا و متنوع بر روی هر قسمتی از کنترل که بخواهید، وجود افکت­های از پیش تعریف شده، امکان طراحی های ۲ بعدی و نیز ۳ بعدی، امکان ایجاد انیمیشن و بسیاری از امکانات دیگر که به مرور با آن ها آشنا خواهید شد. [sof]

ساختار ویژگی­های جدید در WPF، در واقع یک ساختار جدید و قدرتمند که براساس DirectX و APIهایِ گرافیکی سریعِ سخت افزاری، که معمولاً در اکثر بازی­های کامپیوتری مدرن استفاده می­شوند، پایه­گذاری شده است. این بدان معناست که برنامه­نویس می­تواند از Effectهای گرافیکی

جالب، بدون توجه سربار اجرایی که به دلیل استفاده از فرم­های ویندوزی ممکن است به وجود آید، استفاده کند. در حقیقت می­توانید از ویژگی­های پیشرفته­ای مانند پشتیبانی از فایل­های ویدئویی و محتویات D3 در فرم­های ویندوزی استفاده کنید.

با به کارگیری این ویژگی­ها( به همراه یک ابزار طراحی مناسب) امکان ایجاد واسط­های کاربری تحریک کننده چشم و Effectهای بصری ویژه وجود خواهد داشت. البته باید مجدداً خاطرنشان کنیم که انجام چنین کار­هایی با استفاده از فرم­های ویندوزی تقریباً غیرممکن است.

با توجه به اینکه ویژگی­های مربوط به پویانمایی، D3 و فایل­های ویدئویی بیشترین توجه در WPF را معطوف خود می­کند، باید توجه داشته باشید که با استفاده از WPF می­توانید برنامه­های ویندوزی معمولی را با استفاده از خصوصیات بصری ساده (قدیمی) نیز ایجاد کنید. به عبارت دیگر استفاده از کنترل­های معمولی تا هنگامی که WPF در فرم­های ویندوزی کار می­کند به سادگی امکان پذیر است. حتی می­توان این طور بیان کرد که WPF ویژگی­هایی که مستقیماً به توسعه دهندگان تجاری می­شود را تسهیل بخشیده است. این ویژگی­ها به طور گسترده­ای شامل مدل انقیاد داده­ها، یک مجموعه جدید از کلاس­ها برای چاپ محتویات و مدیریت صف­های چاپ و یک مشخصه متنی برای نشان دادن متن­های بزرگ قالب­دار می­شوند.

همچنین یک روش جدید برای ایجاد برنامه­های بر مبنای صفحه که به صورت پیوسته در IE اجرا می­شوند و می­توان از طریق یک وب سایت به آن دسترسی پیدا کرد و آن را اجرا نمود نیز در نظر گرفته شده است. در این مدل، دیگر اخطارهای امنیتی متداول و تاییدیه­های رنجاننده مربوط به نصب را مشاهده نخواهید کرد.

WPF یک چارچوب نمایشی کاملاً جدید است که توانایی­های بسیاری از چارچوب­های قبلی را مانند  GDI+، GDI، User و HTML با یکدیگر ترکیب کرده است و توانایی تاثیر گزاری بر روی ابزارهای ایجاد پویانمایی در وب مانند Flash را نیز دارد. البته بر روی برنامه­های ویندوزی مانند Microsoft Word نیز تاثیرگذار است.

درک گرافیک ویندوز

درک مزایای مهیج و زیبای WPF بدون پی بردن به این نکته که چگونه برنامه نویسان ویندوز از تکنولوژی­های نمایشی مشابه و یکسان برای بیش از ۱۰ سال استفاده می­کردند واقعاً سخت است.

یک برنامه ویندوزی جدید که با زبان #C و یا VB.NET نوشته می­شود، به صورت غیر مستقیم به دو بخش اصلی سیستم­عامل ویندوز  برای ایجاد واسط گرافیکی­اش وابسته است:

ü      User32: این قسمت عهده­دار فراهم آوردن نمایی شبیه ویندوز برای برنامه است و با عناصری مانند فرم­ها، دکمه­ها، جعبه­های متن و … سر و کار دارد.

ü      GDI/GDI+: این قسمت پشتیبان ترسیمی برای ایجاد اشکال، متن­ها و تصاویر در قبال هزینۀ پیچیدگی­های اضافی در برنامه می­باشد (البته معمولا عملکرد آن بی زرق و برق است).

هر دو تکنولوژی در سال­های متمادی مورد بازبینی­های متعدد قرار گرفتند و APIهایی که برای تعامل برنامه نویسان با آنها در نظر گرفته شده بودند نیز تغییرات چشمگیری داشته اند. اما هنگامی که برنامه نویسان قصد داشتند در برنامه ای (چه با #C و NET 2.0 و یا زبان­های قدیمی­تر مانند VB6 و حتی کدهای برپایه  ++MFC C) اقدام به ایجاد تصاویر دستی کنند قسمت­های یکسانی از سیستم عامل ویندوز در پشت پرده در حال کار بودند. Frameworkهای جدیدتر روش­های بهتری برای تعامل با User32 و همچنین +GDI/GDI ارائه کردند. این روش­ها بهبودهای زیادی در کارآیی برنامه، کاهش پیچیدگی برنامه به همراه داشتند. البته این روش­ها ویژگی­هایی نیز اضافه می­کردند که با استفاده از آنها برنامه نویس نیازی به کدنویسی زیاد نداشت. اما این روش­ها نیز نتوانستند محدودیت­های اساسیِ اجزای اصلی سیستم که بیش از یک دهه از طراحی آن می­گذشت را حذف کنند.

نکته: اساسی­ترین تقسیم وظایف میان User32 و +GDI/GDI حدود ۱۵ سال پیش ارائه شده بود و برای Windows 3.0 دارای ساختاری مناسب بودند. البته در آن زمان User32 در واقع با نام User معرفی گردید زیرا هنوز سیستم­های ۳۲ بیتی ایجاد نشده بودند.

DirectX موتور گرافیکی جدید:

مایکروسافت برای رهایی از محدودیت­های موجود در کتابخانه­های User32 و +GDI/GDI تکنولوژی جدیدی را مورد استفاده قرار داد. این تکنولوژی در واقع همان DirectX می­باشد. DirectX به عنوان یک ابزار مستعد خطا و متحد برای ایجاد بازی های کامپیوتری بر روی پلتفرم ویندوز کار خود را آغاز کرد.

هدف اصلی در طراحی DirectX افزایش سرعت بود؛ از اینرو مایکروسافت به تعامال نزدیکی با سازندگان کارت­های ویدئویی به منظور فراهم کردن شتاب سخت افزاری لازم که برای الگوهای گرافیکی پیچیده لازم بودند و همچنین effectهای ویژه ای مانند شفافیت و گرافیک سه بعدی پرداخت.

این تکنولوژی در طول سال­های بعد از اولین انتشارش (مدتی بعد از Windows 95) رشد­های قابل ملاحظه­ای داشته است و هم اکنون یکی از اجزای لاینفک در سیستم عامل ویندوز می­باشد که از تمامی کارت­های ویدئویی پشتیبانی می­کند. اگرچه APIهای برنامه نویسیِ DirectX هنوز هم اساس کار آن را به عنوان ابزاری برای توسعه بازی معرفی می­کنند، اما به علت پیچدیگی زیاد کار با آنها، از DirectX تقریباً در هیچ یک از برنامه­های ویندوزی (مانند برنامه­های تجاری)استفاده نمی­شود.

WPF تمامی این مشکلات را برطرف کرده است. در WPF از تکنولوژی­های +GDI/GDI به عنوان پایه کار استفاده نمی­شود. در عوض از DirectX استفاده می­شود. در برنامه­های WPF بدون توجه به اینکه برنامه نویس چه واسط کاربری را ایجاد می­کند از DirectX استفاده می­شود. این بدان معناست که اگر شما بخواهید یک طرح گرافیکی پیچیده و سه بعدی ایجاد کنید و یا یک دکمه به همراه متنی آشکار ایجاد کنید، تمامی کار­های ترسیمی از طریق DirectX انجام می­شود. بالنتیجه، می­توانید در تمامی برنامه­های تجاری می­توانید به سادگی از effectهای غنی را بدون هیچ مشکلی به کار برید. همچنین می­توانید از مزایایِ شتاب­دهنده سخت­افزاری نیز بهره­مند شوید. این بدان معناست که DirectX به کارهایِ زیادی که به GPU مرتبط است دخالت نمی­کند و به انجام کارهای دیگری می­پردازد.

نکته: GPU یک پردازشگر مجزا است که بر روی کارت­های ویدئویی نصب می­شود.

نکته: DirectX نسبت به +GDI/GDI کارآیی بهتری دارد؛ زیرا درک دقیقی از عوامل سطح بالا مانند گرادیان­ها (شیب) و همچنین الگوها را که می­توانند مستقیماً توسط کارت ویدئویی انجام شوند را دارد اما +GDI/GDI از این مزیت بی­بهره­اند. از اینرو برای انجام چنین کار­هایی توسط +GDI/GDI باید دستورات مربوطه را به دستورات پیکسل به پیکسل تبدیل کرده و سپس اجرا کنید. بدیهی است که این عمل مدت زمانی طولانی­تری را به خود اختصاص می­دهد و بسیار کند عمل می­کند.

تنها عنصری که هنوز در صحنه حاضر است User32 (با کمی محدودیت) می­باشد. این امر بدان دلیل است که WPF هنوز از User32 برای انجام سرویس­های خاصی مانند اجرای دریافت ورودی­ها ودسته­بندی اینکه هر برنامه دربردارنده چه قسمتی از صفحه نمایش می­باشد. با این حال کلیه عملیات ترسیمی توسط DirectX انجام می­پذیرد.

نکته: باید توجه داشته باشید که WPF یک روپوش جدید برای +GDI/GDI نیست؛ بلکه یک جایگزین برای آنها می­باشد. (یک لایه جدید که با DirectX کار می کند)

نکته: در پشتیبانی نرم­افزاری WPF یک حالت استثناء وجود دارد. به علت پشتیبانی ضعیف راه­اندازها، WPF فقط هنگامی عمل خوشنماسازی را برای ترسیمات D3 انجام می­دهد که برنامه بر روی ویندوز Vista اجرا گردد (همچنین باید یک راه­انداز محلی در ویندوز ویستا برای کارت ویدئویی نیز داشته باشید). این بدان معناست که اگر تصویر سه بعدی را بر روی سیستم عامل Windows XP رسم کنید، احتمالاً با لبه­هایی دندانه­دار در انتها تصویر مواجه خواهید شد. اما اگر همان تصویر را در Windows Vista اجرا کنید لبه­های تصویر روان و سلیس خواهند بود. خوشنماسازی برای ترسیمات D2 بدون در نظر گرفتن سیستم عامل پیاده­سازی شده است.

نکته: با داشتن یک کارت ویدئویی قدرتمند، تضمینی برای داشتن سرعت و کیفیت در WPF وجود ندارد. نرم­افزار­ها در این مورد نیز نقش مهمی را ایفا می­کنند.

نکته: هدف اصلی WPF پردازش کارهای گرافیکی توسط GPU برای می­باشد. به جای استفاده از CPU اصلی کامپیوتر برای پردازش روتین­های گرافیکی پیچیده از GPU که بر روی کارت گرافیکی به صورت مجزا وجود دارد استفاده می­شود. با این کار CPU برای انجام فعالیت­های دیگر آزاد باقی می­ماند و از کارت ویدئویی استفاده مناسب و حداکثر صورت خواهد گرفت.

درجه بندی­های WPF

کارت­های ویدئویی بسیار با یکدیگر متفاوت می­باشند. هنگامی که WPF یک کارت ویدئویی را مورد دسترسی قرار می­دهد، فاکتورهای مهمی را مد نظر قرار می­دهد:

ü      میزان حافظه RAM در آن کارت.

ü      پشتیبانی از پیسکل­های سایه­دار.

ü      پشتیبانی از vertexهای سایه دار.

ü      ….

بر اساس این جزئیات به هر کارت گرافیکی یک مقدار برای درجه اجرایی داده می­شود. مقادیر انتسابی به سه دسته زیر تقسیم ­می­شوند:

ü      Rendering Tire 0: کارت­های ویدئویی با این درجه، از هیچگونه شتاب (بهینگی) سخت­افزاری پشتیبانی نمی­کنند. این درجه معادل استفاده از نسخه­های  DirectX 7.0 به پایین می­باشد.

ü      Rendering Tire 1: کارت­های ویدئویی این دسته قسمتی از خصوصیات شتاب سخت­افزاری را پشتیبانی می­کنند. این درجه معادل استفاده از  DirectX 7.0 تا DirectX 9.0 می باشد.

ü      Rendering Tire 2: کارت­های این قسمت، از تمامی ویژگی­های شتاب سخت­افزاری حمایت می­کنند. این دسته معادل استفاده از DirectX 9.0 به بالا می باشد.

ممکن است بخواهید درجه­ای که برای کارت گرافیکی شما در نظر گرفته شده است را مشاهده کنید. برای این کار می­بایست مقدار خصوصیت Tier که در کلاس System.Windows.Media.RenderCapability وجود دارد را بازیابی کنید. برای تطبیق این مقدار با درجه بندی­های فوق می­بایست مقدار خصوصیت Tier را ۱۶ بیت به سمت راست شیفت دهید. در زیر نمونه این کد آورده شده است:

int  renderingTier = (RenderCapability.Tier >> 16);

نکته: برای استفاده از کلاس­های موجود در فضانام فوق می­بایست اسمبلی PresentationCore را به Referenceها اضافه کنید.[per]

عدم وابستگی WPF به رزولوشن:

بدون شک یکی از جنبه های فوق العاده مفید و قوی WPF عدم وابستگی آن به رزولوشن صفحه نمایش است. یک برنامه نویس حرفه ای در WPF حتی المقدور از خواص Width و Height عناصر برای چیدمان آن ها استفاده نخواهد کرد. یقینا برایتان غیر قابل تصور است. به این دلیل که تا بحال هر عنصری که در برنامه خود استفاده کرده­اید، پس از نامگذاری آن اقدام به ایجاد سایز مناسب آن نموده اید اما در نمونه برنامه ها و بخش های آتی خواهید دید، که کمترین استفاده را از این دو خاصیت خواهیم کرد. این موضوع به دلیل ماهیت WPF و غیر وابسته بودن به رزولوشن صفحه نمایش می باشد .

برنامه های تحت ویندوزی که تا کنون و با تکنولوژی­های موجود نوشته می شدند( می شوند) وابستگی زیادی به رزولوشن صفحه نمایش دارند. به عنوان مثال فرم های شما، که در صفحه نمایش شما با رزولوشن ۱۰۲۴ * ۷۶۸ به خوبی طراحی شده اند، ممکن است در یک کامپیوتر دیگری با رزولوشن بالاتر از آن (این امر در Laptop ها بسیار معمول می باشد. علاوه بر اینکه آن ها در بیشتر مواقع از تراکم ۱۲۰ DPI استفاده می کنند. در صورتی که مونیتور های CRT معمولا از تراکم ۹۶ DPI استفاده می کنند. “گر چه قابل تغییر می باشد” ) کوچک شود، و بر عکس، در یک سیستم با رزولوشن پایین، قسمتی از فرم های شما از صفحه نمایش خارج گردد.

اما با WPF این مشکلات مرتفع می گردد. دلیل آن هم استفاده از سیستم خاصی برای اندازه گیری اجزاء و عناصر برنامه شما، می باشد. عناصر، اعم از دکمه ها، فرم ها و هر شی قابل اندازه گیری با واحدی با نام DIU (Device Independent Unit ) اندازه گیری می شوند. هر یک DIU معادل با ۱/۹۶ (۱ تقسیم بر ۹۶) هر اینچ می باشد. در واقع می توان گفت هر DIU در صفحه نمایشی با تراکم پیکسل استاندارد یعنی ۹۶ DPI ، دقیقا برابر با ۱ پیکسل فیزیکی در صفحه نمایش می باشد. حال اگر از DPI بالاتری استفاده گردد، طبیعتا هر یک) DIU در همان رزولوشن قبلی)کمتر از ۱ پیکسل خواهد شد.

حال WPF با اندازه گیری DPI در هر رزولوشنی که با فرمول مشخصی محاسبه می شود، می توانید سایز مناسب عناصر شما را محاسبه کند. این روش باعث می شود که نمایش یک کنترل مانند Button در رزولوشن ۱۰۲۴*۷۸۶ و با ۹۶ DPI تراکم، با نمایش آن در رزولوشن ۱۶۰۰*۱۲۰۰ و با تراکم ۱۲۰ DPI یکسان باشد.

حال باید دلیل اینکه چرا نباید حتی الامکان عرض و ارتفاع کنترل ها را به صورت مطلق و دستی تعیین کرد را متوجه شده باشید.

فهرست

چكيده
۲
فصل اول :مقدمه ای بر تکنولوژی
Windows Presentation Foundation

تکنولوژی¬های جدید دات¬نت    ۸
مشکلات تکنولوژی¬های قبل در شخصی¬سازی ابزارها    ۱۰
درک گرافیک ویندوز    ۱۴
Directx موتور گرافیکی جدید    ۱۵
درجه¬بندی¬های WPF    ۱۸
عدم وابستگی WPF به رزولوشن    ۱۹
معماری WPF    ۲۱
ساختار سلسله مراتبی آبجکت¬ها در WPF    ۲۴

فصل دوم :زبان XAML
طراحی واسط¬های گرافیکی کاربر قبل از WPF    ۲۸
کاربردهای مختلف XAML    ۲۹
ساختار فایل¬های XAML    ۳۰
شکل ساده یک سند XAML    ۳۳
فضای نام¬ها در XAML    ۳۵
خواص و رویدادها در XAML    ۳۶
کامپایل XAML به فایل های BAML تزریق شونده به اسمبلی ها
۴۲

فصل سوم :چیدمان طراحی کنترل¬ها
ایجاد برنامه¬های WPF    ۴۵
چیدمان عناصر در WPF    ۴۹
کنترل های کانتینر (ContainerControls)    ۵۱
مفهوم Content در WPF    ۵۳
کنترل Expander     ۵۸

فصل چهارم:نتیجه¬گیری
مزایای WPF    ۶۱
معایب WPF    ۶۴
چشم انداز    ۶۵
نتیجه¬گیری    ۶۶
منابع    ۶۷

فهرست شکلها
عنوان    صفحه

فصل اول :مقدمه ای بر تکنولوژی
Windows Presentation Foundation
شکل۱-۱)نمونه پیاده سازی یک دستور چهار شرطی در سیستم WF     ۹
شکل۱-۲ )کنترل منویی    ۱۱
شکل۱-۳ )معماری WPF    ۲۲
شکل۱-۴ )ساختار سلسله مراتبی آبجکت های مختلف را در تکنولوژی WPF    ۲۴

فصل دوم :زبان XAML
شکل۲-۱)یک نمونه از آبجکت TextBoxکه تعدای خواص آن از جمله رنگی به عنوان پس زمینه و رنگ پیش زمینه و .. تعریف شده است.    ۳۷
شکل۲-۲ )در این شکل ظاهر TextBox با تغییر خاصیت BackGround و ForeGround تغییر کرده است.    ۳۹
شکل۲-۳)وجود گزینه دیگری با عنوان <New Event Handler> را نشان میدهد که با انتخاب آن می توانید، یک رویداد جدید برای کنترل مورد نظر ایجاد کنید.    ۴۱
شکل۲-۴)نحوه تعریف یک رویداد کلیک برای یک Button    ۴۱
شکل۲-۵)نحوه رفتن به یک رویداد از قبل تعریف شده    ۴۲

فصل سوم :چیدمان طراحی کنترل¬ها
شکل۳-۱) ایجاد یک پروژه WPF    ۴۵
شکل۳-۲)نتیجه حاصل ازایجاد یک پروژه WPF Application    ۴۷
شکل۳-۳ )نمونه ای از یک عنصر ToolTip    ۵۴
شکل۳-۴)سلسله مراتب ارث¬بری کنترلهای کانتینر وکنترلهای محتوا    ۵۵
شکل۳-۵ )نمایش عکس بعنوان محتوای یک Button    ۵۸

فصل چهارم:نتیجه¬گیری
شکل۴-۱) نمای ظاهری یاهو مسنجر جدید ویژه سیستم عامل ویستا     ۶۵

royalit

محصولات مرتبط
s

بررسی آیین قربانی در بین ...


10000 تومان 4 13 ژوئن 2017
s

مقاله عوامل موثر در تربیت ...


8000 تومان 0 12 ژوئن 2017
s

مقدمه و نحوة تحقيق بعد از ...


10000 تومان 0 27 دسامبر 2016

دیدگاه ها

- - - - - - - - - - - - - - - - - - - - -