- ترجمه
توسعه برنامههای کاربردی برای پلتفرم Windows Phone 7 شبیه به توسعه برای پلتفرم اندروید از راههایی بیشتر از آنچه انتظار دارید است. در این مقاله، کریس بنت به بررسی شباهت های این دو پلتفرم می پردازد.
تفاوت بین پلتفرم ها
قبل از پرداختن به ابزارها و فرآیندهای خاص برای انتقال و/یا ساخت برنامهها برای Windows Phone 7، اجازه دهید با اصطلاحات و تفاوتهای فناوری بین Windows Phone 7 و Android شروع کنیم. اولین تفاوت بزرگ این است که برنامههای Windows Phone 7 بهعنوان مجموعههای مدیریتشده داتنت ساخته شدهاند که در سی شارپ نوشته شدهاند. این پلتفرم از دو نوع برنامه پشتیبانی می کند: بازی های Silverlight و XNA.اکثر برنامههای Windows Phone 7 با استفاده از Silverlight ساخته میشوند که روشی مبتنی بر فرم برای تعامل با کاربر از طریق کنترلهای استاندارد مانند برچسبها، جعبههای متن، جعبههای فهرست و غیره ارائه میدهد. همتای Silverlight برای Android Layout و فعالیت همراه آن Page است.
نوع دیگری از اپلیکیشن های پشتیبانی شده توسط ویندوز فون 7 XNA است که به توسعه دهندگان اجازه می دهد بازی های دو بعدی و سه بعدی بسازند. این معادل اندروید SurfaceView و GLSurfaceView برای 2D و 3D است. برخلاف اندروید که بر روی استفاده از OpenGL برای بازیها تمرکز دارد، بازیهای XNA از Direct3D استفاده میکنند که پورت کردن بازیها از پلتفرمهای PC و Xbox 360 را آسانتر میکند.
صفحات و پیمایش
صفحات Silverlight به عنوان فایل های XML درست مانند طرح بندی های Android ایجاد می شوند. یک فایل XML از XAML (زبان نشانه گذاری برنامه توسعه پذیر) برای توصیف صفحه استفاده می کند. XAML شبیه به Android Layout است اما دارای طیف وسیع تری از امکانات است. XAML به توسعهدهندگان اجازه میدهد تا اقدامات مرتبط با صفحه، از جمله انیمیشن، اتصال دادهها و موارد دیگر را اجرا کنند، که میتواند میزان کد مورد نیاز را کاهش دهد.طرحبندی Android از فعالیتی که برای انجام اقدامات استفاده میشود جدا شده است. در نتیجه، شما مجبور به نوشتن کد هستید تا Activity را با عناصر رابط کاربری مناسب (UI) مرتبط کنید. کد سی شارپ برای یک صفحه خاص قبلاً به عناصر UI گره خورده است و به سادگی چنین نیازی وجود ندارد. چارچوب به طور خودکار "پیوندهای" لازم را برای اشیا و رویدادها برای صفحه و رابط کاربری ایجاد می کند. این از آشفتگی که معمولاً در روش OnCreate هر کار رخ میدهد، جلوگیری میکند، جایی که اتصالات رابط کاربری و کنترلکنندههای مختلف لازم را ایجاد میکنید.
ناوبری یکی دیگر از تفاوت های مهم بین پلتفرم ها است. در اندروید، با ایجاد یک Intent، از یک کار به کار دیگر سوئیچ می کنید. مشابه در ویندوز فون 7 ناوبری است که به شما امکان می دهد بین صفحات مختلف حرکت کنید. همانند Android Intent، میتوانید دادهها را به صفحهای که در آن پیمایش میکنید ارسال کنید. صفحه در ویندوز فون 7 دارای ویژگی هایی مشابه صفحه ASP.net است. به عنوان مثال، QueryString معمولا برای ارسال اطلاعات به صفحه بعدی استفاده می شود.
تبدیل طرح بندی به صفحات
قبل از پرداختن به کد، باید به تبدیل Android Layout XML به صفحات XAML Windows Phone 7 نگاه کنیم. البته یکی از نقاط قوت ابزارهای رایگان ویندوز فون 7، کیفیت ابزارهای طراحی موجود برای XAML است. طراح XAML همراه با ویژوال استودیو 2010 در نظر گرفته شده است که در درجه اول توسط توسعه دهندگان برای دریافت کنترل های اولیه برای صفحه و شروع توسعه استفاده شود. Expression Blend برای ایجاد طرح های حرفه ای با مجموعه ای از ابزارهای پیشرفته تر برای بهبود رابط کاربری طراحی شده است. مانند طرحبندی Android، همیشه میتوانید به ویرایش مستقیم XAML در یک ویرایشگر متن متوسل شوید، زیرا این یک فایل XML معمولی است.صفحه Windows Phone 7 طرحبندی و کنترلهایی شبیه به Android Layout ارائه میدهد. جدول زیر همتاهای هر دو پلتفرم را نشان می دهد.
عناصر نشانه گذاری
توجه داشته باشید که Windows Phone 7 دارای نگاشت یک به یک برای نشانه گذاری و کنترل های اولیه است. اما برای برخی از عناصر نشانه گذاری و کنترل تخصصی، هیچ تطابقی وجود ندارد. دلیل این امر در غنای XAML نهفته است، که لانه کردن کنترل ها را در یکدیگر بسیار آسان می کند. به این ترتیب می توانید برای مثال، یک ListBox با CheckBox در کنار هر عنصر بدون نیاز به نوشتن کد اضافه کنید. این بدان معناست که شما به همه آن کنترلهای پیچیده پیچیده نیاز ندارید، آنها را میتوان در برنامه شما ایجاد و اصلاح کرد.ذخیره سازی داده ها
ذخیره سازی داده بخش بزرگی از چالش در هنگام توسعه بیشتر برنامه های تلفن همراه است. با ویندوز فون 7، ایده استفاده از سرویس های ابری به عنوان رسانه ذخیره سازی اولیه است. در نگاه اول، این ممکن است برای شما کمی عجیب به نظر برسد، اما اگر در حال ایجاد یک اپلیکیشن مشتری برای سایت خود هستید، منطقی است. اگر این مسیر را دنبال نمی کنید، دو گزینه دارید: استفاده از خدمات ذخیره سازی تجاری مانند Windows Azure یا استفاده از رابط محلی IsolatedStorage. IsolatedStorage به شما امکان می دهد فایل ها را فقط برای استفاده توسط برنامه خود ذخیره کنید.بسته به اینکه برنامه شما چگونه داده ها را ذخیره می کند، ممکن است بخواهید داده ها را به صورت محلی بدون نیاز به ایجاد و استفاده از پایگاه داده ذخیره کنید. به عنوان مثال، اگر در حال ساخت یک برنامه RSS/Podcast هستید، می توانید به سادگی XML را از فید RSS ذخیره کنید. اگر نیاز به دسترسی به دادهها دارید، فقط دادهها را بارگیری کنید و از LINQ (پرس و جوی یکپارچه زبان) برای دریافت دادههای خاص استفاده کنید.
در مثال برنامه RSS، میتوانیم با XML خام از خوراک RSS کار کنیم یا میتوانیم از LINQ به XML برای ایجاد یک XDocument برای نگهداری ورودیها استفاده کنیم، همانطور که در زیر نشان داده شده است:
- //ایکس ام ال ایجاد کنید
- XDocument doc = new XDocument();
- doc.Add(new XElement("DataRoot" ,
- new XElement("Record" ,
- XElement جدید ("مقدار" "داده1"))،
- new XElement("Record" ,
- XElement جدید ("مقدار" "داده2"))
XML تولید شده توسط این قطعه کد ساده به شکل زیر است:
* این کد منبع با برجستهکننده کد منبع برجسته شده است.
- < DataRoot >
- < Record >
- < value >داده 1 value >
- Record >
- < Record >
- < value >داده 2 value >
- Record >
- DataRoot >
برای ذخیره این XML در فضای ذخیره سازی ایزوله، همانطور که در قطعه زیر نشان داده شده است، از IsolatedStorageFile با IsolatedStorageFileStream استفاده می کنیم:
* این کد منبع با برجستهکننده کد منبع برجسته شده است.
- //XML را ذخیره کنید
- doc.Save(file);
- file.Close();
همانطور که می بینید، پیاده سازی ذخیره سازی داده های XML در ذخیره سازی ایزوله بسیار آسان است. کد دریافت XML و ایجاد کوئری LINQtoXML در زیر نشان داده شده است:
* این کد منبع با برجستهکننده کد منبع برجسته شده است.
- //XML را بارگیری کنید
- با استفاده از (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
- با استفاده از (فایل IsolatedStorageFileStream = isf.OpenFile ("data.xml" ، FileMode .OpenOrCreate))
- XDocument d = XDocument .Load(file);
- var query = از r در d.Root.Elements ("Record")
- r را انتخاب کنید
- //لیست رکوردها را پردازش کنید
اگرچه مثال بالا بسیار ساده است، اما نشان می دهد که چقدر آسان است که ذخیره داده ها را در گوشی بدون نیاز به ایجاد و استفاده از پایگاه داده پیاده سازی کنید. این کد همچنین می تواند برای ذخیره داده های پیچیده تر گسترش یابد.
ابزارهای توسعه
به عنوان یک توسعه دهنده اندروید، به احتمال زیاد به جنبه های خوب و بد توسعه منبع باز عادت دارید. استفاده از Eclipse IDE برای اندروید البته بخشی از جنبه مثبت آن است. اما جعبه ابزار توسعه اندروید (ADT) فاقد بسیاری از ابزارهای ضروری مانند ابزارهای نشانه گذاری مناسب است. اگرچه ADT چنین ابزارهایی را ارائه می دهد، اما آنقدر قوی نیستند که بتوانید به راحتی نشانه گذاری ایجاد کنید - به احتمال زیاد مجبور خواهید بود به XML بروید.مایکروسافت چندین سال است که ابزارهای توسعه قابل اعتمادی را ارائه می دهد. و پلتفرم Windows Phone 7 نیز از این قاعده مستثنی نیست. مایکروسافت، طبق معمول، شروع فوری را آسان و ارزان می کند. توسعه دهندگان جاوا می توانند بدون صرف هزینه این ابزارها را دانلود و امتحان کنند.
ابزارهای زیر در حال حاضر در create.msdn.com در دسترس هستند:
- Microsoft Visual Studio 2010 Express for Phone
- Microsoft Expression Blend برای تلفن
- Microsoft XNA Game Studio for Phone
Microsoft Visual Studio 2010 Express for Phone محیط توسعه یکپارچه اصلی (IDE) است که برای ایجاد برنامه های کاربردی برای Windows Phone 7 استفاده می شود. این شامل تمام ابزارهایی است که برای ایجاد برنامه ها نیاز دارید، از جمله ابزار نشانه گذاری صفحه، کامپایلر C #، Windows Phone 7. شبیه ساز و بیشتر
Microsoft Expression Blend for Phone ابزاری است که عمدتاً طراحان حرفه ای را هدف قرار می دهد و برای بهبود صفحات در برنامه Silverlight استفاده می شود. توسعه دهندگان می توانند از این ابزار برای ایجاد صفحات از ابتدا یا بهبود صفحات یک برنامه موجود بدون لمس کد استفاده کنند.
Microsoft XNA Game Studio for Phone مجموعه ای از ابزارهای مورد نیاز برای ایجاد بازی های دو بعدی و سه بعدی را برای این پلتفرم ارائه می کند. استودیو همچنین شامل XNA Framework و همچنین ابزارهای مورد نیاز برای گنجاندن صدا و گرافیک مورد نیاز برای ایجاد بازیهای مبتنی بر حلقه است.
نتیجه
Windows Phone 7 برداشت جدیدی از سیستم عامل گوشی های هوشمند به ارمغان می آورد، اما همچنان بر اساس فناوری های اثبات شده ای مانند Silverlight، WPF، C# و غیره است. همانطور که از این مقاله می بینید، تفاوت های اندروید و ویندوز فون 7 چندان زیاد نیست.UPD: من ترجمه ای از این مقاله را منتشر کردم تا نشان دهم اگر از قبل تجربه توسعه برای اندروید را داشته باشید، یادگیری توسعه برای پلتفرم ویندوز فون 7 چندان دشوار نیست. این بدان معنا نیست که هر یک از این پلتفرم های موبایل بهتر یا بدتر هستند.
لطفاً کارمای من را پایین نیاورید تا بتوانم مقالات بیشتری در مورد توسعه ویندوز فون 7 پست کنم.
قبل از شروع فرآیند توسعه برنامه های کاربردی برای تلفن های همراه در حال اجرا، باید یک جعبه ابزار ویژه تهیه کنید که بدون آن انجام مراحل بعدی غیرممکن خواهد بود.
آماده سازی برای توسعه به نرم افزار زیر نیاز دارد:
- ویژوال استودیو 2010
این نرم افزار امکان استفاده کامل از تب ها را فراهم می کند. شایان ذکر است که اشکال زدایی مشابه برای نسخه های دسکتاپ ویندوز استفاده می شود.
- ترکیب بیانی
این نرم افزار یک طراح بصری است که به لطف آن می توانید به راحتی با لایه ها، انواع قالب ها، سبک های طراحی و انیمیشن ها کار کنید. نسخه Expression Blend4 برای WindowsPhone به صورت رایگان در دسترس است. شایان ذکر است که Expression Blend پایه XAML است.
- Windows Phone SDK
با این پکیج می توانید فرآیند توسعه را شروع کنید.
- شبیه ساز ویندوز فون
به شما امکان می دهد برنامه های کاربردی را در یک شبیه ساز با Internet Explorer9 تعبیه شده مجهز به HTML5 ایجاد کنید. همچنین میتوان از آن برای تست تماسها و ارسال پیامکها و همچنین پشتیبانی از بسیاری از ویژگیهای مفید از جمله چند لمسی روی مانیتور، شبیهسازی دوربین استفاده کرد. خدمات موقعیت جغرافیایی برای استفاده در دسترس هستند. با این حال، این شبیه ساز از محتوای رسانه Zune پشتیبانی نمی کند.
- XNA Game Studio4.0
به لطف این نرم افزار می توانید بازی هایی را برای کنسول، رایانه شخصی و ویندوز فون توسعه دهید. کتابخانه های XNA Framework یک نرم افزار مهم است که با کد مدیریت شده مشخص می شود.
نرم افزار اضافی
ابزارهای توسعه دهنده اضافی عبارتند از:
- ابزار ثبت نام برنامه نویس ویندوز فون.
- پروفایل ویندوزفون. مشکلات عملکرد را تشخیص می دهد.
- جعبه ابزار Silverlight برای ویندوزفون.
ویژگی های محیط توسعه
پس از نصب تمام ابزارهای مورد نیاز، توسعه دهندگان به چندین قالب برنامه Silverlight برای WindowsPhone دسترسی خواهند داشت. این نرم افزار هم شامل مجموعه کاملی از اجزای تکنولوژیکی برای توسعه است و هم رابط کاربری ویندوز 8 که یک مفهوم موثر برای طراحی رابط و سیستم است که به شما امکان می دهد در سطح بالایی با کاربر تعامل داشته باشید. با استفاده از آن، می توانید یک سبک به یاد ماندنی و اصلی ایجاد کنید که واقعاً برنامه را در بین بسیاری از برنامه های دیگر در فروشگاه متمایز کند.
سه قالب وجود دارد که نشان دهنده سه سبک مختلف برای ویندوزفون است:
- اولین قالب برنامه WindowsPhone نام دارد که نمونه معمولی از یک برنامه مکالمه است. تعامل با کاربران با استفاده از یک صفحه نمایش واحد انجام می شود.
- WindowsPhone Pivot Application به عنوان یک برنامه دارای نشانک طراحی شده است. هر کدام از بوکمارک ها عنوان خاص خود را دارند که با آن می توانید محتوا را تعیین کنید. Pivot به عنوان یک عنصر کنترل استفاده می شود.
- برنامه پانورامای WindowsPhone دارای یک سیستم تعاملی عجیب با کاربران است که از طریق مناطق تقسیم شده به پانل ها با پیمایش افقی انجام می شود. مشخصه این الگو قرار دادن تصویر پس زمینه در کل پانوراما است. هنگامی که محتوای فعلی نمایش داده می شود، محتوای قرار داده شده در پانل مجاور در سمت راست قابل مشاهده است. پانوراما یک عنصر کنترلی است.
شایان ذکر است که قالب هایی که نام آنها به Agent ختم می شود، قالب های کتابخانه های ویژه ای هستند که هدف اصلی آنها انجام کارهای پس زمینه مختلف است. همچنین تعداد زیادی قالب مختلف دیگر وجود دارد که نقش مهمی در روند توسعه اپلیکیشن های مختلف موبایل دارند.
درباره توسعه برنامهها برای Windows Phone بیشتر بدانید .
قبل از شروع کار با قابلیتهای پلتفرم و توسعه اپلیکیشن، باید مطمئن شویم که همه ابزارهای لازم را در اختیار داریم و برخی اصول توسعه را درک میکنیم.
ابزار
ویژوال استودیو 2010
برای توسعه برای Windows Phone به Visual Studio 2010 با Service Pack 1 Professional edition یا بالاتر نیاز دارید. اگر ویژوال استودیو 2010 را ندارید، با نصب کیت توسعه ویندوز فون، نسخه رایگان Visual Studio 2010 Express برای Windows Phone به طور خودکار نصب می شود که می تواند برای توسعه برنامه های Windows Phone نیز استفاده شود.
هر دو نسخه از ابزارهای توسعه یکپارچه ویژوال استودیو، قابلیت های اشکال زدایی کامل در دستگاه و شبیه ساز را در اختیار توسعه دهنده قرار می دهند، مانند توسعه دهندگان برنامه های کاربردی برای نسخه دسکتاپ ویندوز.
لطفاً توجه داشته باشید که برای رفع اشکال در دستگاه، علاوه بر خود دستگاه و کابل اتصال به رایانه، باید نرم افزار Zune (http://zune.net) را با ابزارهای توسعه روی رایانه نصب کرده باشید. همچنین، قبل از استقرار برنامه و اشکال زدایی، باید دستگاه را با استفاده از ابزار ثبت نام برنامه نویس Windows Phone که با Windows Phone SDK نصب شده است، ثبت کنید (آن را باز کنید).
Windows Phone SDK
این بسته که برای دانلود در App Hub http://create.msdn.com در دسترس است، حاوی همه چیزهایی است که برای شروع توسعه نیاز دارید. در زمان نگارش این مقاله، آخرین نسخه جعبه ابزار در Windows Phone SDK 7.1 Release Candidate تحت مجوز "Go Live" با قابلیت توسعه برنامه های کاربردی خود و انتشار آنها در Windows Phone Marketplace موجود است. Windows Phone SDK 7.1 Release Candidate شامل اجزای زیر است:
- Windows Phone SDK 7.1
- شبیه ساز ویندوز فون
- مجموعه های Windows Phone SDK 7.1
- Silverlight 4 SDK و DRT
- برنامه های افزودنی Windows Phone SDK 7.1 برای XNA Game Studio 4.0
- Expression Blend SDK برای Windows Phone 7
- Expression Blend SDK برای Windows Phone OS 7.1
- سرویس گیرنده خدمات داده WCF برای Windows Phone
- Microsoft Advertising SDK برای Windows Phone
اگر Visual Studio 2010 Professional Edition، Expression Bland 4 یا XNA Game Studio 4.0 را نصب نکرده اید، مراحل نصب نیز دانلود و نصب می شود:
- Visual Studio 2010 Express برای Windows Phone
- Expression Blend 4 برای Windows Phone
- XNA Game Studio 4.0
Expression Blend و Expression Blend برای Windows Phone
Expression Blend یک طراح بصری تعاملی برای XAML است، یک فناوری توصیف رابط برای برنامههای Silverlight و Windows Presentation Foundation (WPF). این یک ابزار طراحی عالی است که به شما امکان می دهد به راحتی لایه ها، انیمیشن ها، سبک ها و قالب ها را دستکاری کنید. این یک ابزار اولیه توسعه XAML است. Expression Blend خود رایگان نیست، اما یک نسخه ویژه برای طراحی اپلیکیشن ویندوزفون به نام Expression Blend 4 برای Windows Phone به صورت رایگان در دسترس توسعه دهندگان است. اگر نسخه کامل Expression Blend را در رایانه خود نداشته باشید، در حین نصب Windows Phone SDK دانلود و نصب می شود. میتوانید درباره Expression Blend 4 در MSDN بیشتر بخوانید:
XNA Game Studio 4.0
شبیه ساز ویندوز فون
اگرچه شبیه ساز Windows Phone شامل مجموعه کاملی از برنامه های موجود در یک دستگاه واقعی نیست، اما محیط قدرتمندی را فراهم می کند که به شما امکان می دهد یک برنامه را تقریباً به طور کامل در شبیه ساز توسعه دهید.
شبیه ساز Windows Phone از پخش محتوای رسانه ای Zune پشتیبانی نمی کند. این شبیه ساز تنها با یک برنامه داخلی اینترنت اکسپلورر ارائه می شود، اما آن اینترنت اکسپلورر 9 با پشتیبانی از HTML5 است.
در عین حال، شبیه ساز به شما امکان می دهد تماس ها را آزمایش کنید و پیام های SMS ارسال کنید، از چند لمسی روی مانیتور با پشتیبانی خود پشتیبانی می کند، از شبیه سازی دوربین، خدمات موقعیت جغرافیایی و شتاب سنج پشتیبانی می کند و همچنین به شما امکان می دهد اسکرین شات بگیرید.
ابزارهای توسعه دهنده اضافی
ابزار ثبت نام برنامه نویس ویندوز فون
پروفایل ویندوزفون
Windows Phone Profiler با نصب جعبه ابزار Windows Phone SDK از منوی Debug Visual Studio در دسترس است.
جعبه ابزار Silverlight برای ویندوزفونمجموعه ای از کنترل های مفید Silverlight برای Windows Phone با پشتیبانی از حالت طراحی توسط تیم توسعه Silverlight است. همه کد منبع، نمونه ها و مستندات موجود است. تقریباً هر سه ماه یکبار بهروزرسانی میشود، در http://silverlight.codeplex.com یا از طریق NuGet در دسترس است.
نسخه فعلی شامل کنترلهایی مانند ContextMenu، DatePicker و TimePicker، ToggleSwitch، WrapPanel و GestureHelper است.
محیط توسعه
پس از نصب Windows Phone SDK، گفتگوی New Project در ویژوال استودیو گروه های پروژه Silverlight برای Windows Phone را نمایش می دهد:
و پروژه هایی برای ویندوز فون به گروه XNA Game Studio 4.0 اضافه خواهند شد:
این سری از مقالات بر روی توسعه Windows Phone با Silverlight تمرکز دارد، بنابراین اجازه دهید به الگوهای موجود برای توسعه دهنده برنامه با جزئیات بیشتری نگاه کنیم.
پس از نصب، توسعه دهنده الگوهای برنامه Silverlight برای Windows Phone زیر را در اختیار دارد:
- برنامه Windows Phone
- نرم افزار Windows Phone Databound
- کتابخانه کلاس ویندوزفون
- ویندوز فون Silverlight و برنامه XNA
قبل از اینکه مستقیماً به قالب های برنامه بپردازیم، لازم است چند کلمه در مورد Windows Phone و رابط کاربری به سبک ویندوز 8 بگویم.
Windows Phone و Windows 8-style UI
Windows Phone فقط یک پلتفرم دیگر برای دستگاه های تلفن همراه نیست. این نه تنها شامل یک مؤلفه فناوری است، بلکه یک مفهوم کاملاً توسعه یافته از طراحی رابط و تعامل کاربر به نام UI به سبک Windows 8 یا سبک UI به سبک ویندوز 8 است.
اگر یک طراح هستید یا یک طراح اختصاصی در تیم خود دارید، می توانید از قدرت کامل جعبه ابزار Expression Blend 4 یا Expression Blend for Windows Phone که با Windows Phone SDK ارائه می شود، استفاده کنید.
اگر شما یک توسعه دهنده هستید و نمی خواهید با طراحی بصری اپلیکیشن سر و کار داشته باشید، مثلاً در حال توسعه یک اپلیکیشن تجاری هستید و هر آنچه از آن نیاز است با طراحی کلی و سبک ویندوزفون سازگار است، چه باید کرد؟
همه چیز بسیار ساده است. اول، Silverlight برای تلفن با در نظر گرفتن رابط کاربری به سبک ویندوز 8 طراحی شده است، بنابراین همه کنترل های داخلی در رابط کاربری به سبک ویندوز 8 هستند. دوم، بهطور پیشفرض، برنامههایی که از قالبهای ارائهشده با Windows Phone SDK ساخته شدهاند، مطابق با رابط کاربری ویندوز 8 از سبکها و فونتها استفاده میکنند، نگاه میکنند و استفاده میکنند.
از سوی دیگر، توانایی استایل دادن به کنترلها و برنامههای مبتنی بر XAML که Silverlight ارائه میکند کافی است تا برنامه شما را منحصر به فرد و قابل تشخیص کند، در حالی که در سبک رابط کاربری ویندوز 8 باقی بماند.
راهنمای طراحی رابط کاربری و تجربه کاربری برای ویندوزفون در لینک زیر قابل مشاهده است
همه آنچه در بالا گفته شد، البته در مورد طراحی برنامه های معمولی صدق می کند، زیرا الزامات طراحی برنامه های بازی و رابط آنها می تواند به طور قابل توجهی متفاوت باشد. در عین حال، نباید اصول کلی تعامل کاربر را که در مفهوم ویندوزفون تعبیه شده است، فراموش کرد.
قالب های کاربردی
ابتدا، اجازه دهید نگاهی به سه الگو بیندازیم، که سه سبک اصلی یک برنامه Windows Phone هستند:
- برنامه Windows Phone
- برنامه Windows Phone Pivot
- برنامه پانورامای ویندوز فون
برنامه Windows Phone آنالوگ یک برنامه مکالمه ساده است که دارای یک صفحه اصلی است که از طریق آن تعامل اصلی با کاربر انجام می شود.
Windows Phone Pivot Application به نوعی مانند یک برنامه نشانک است که عنوان هر نشانک محتوا را مشخص می کند. مورد استفاده استاندارد این است که هر نشانک دادههای یکسانی را به طور کلی نشان میدهد، اما در نماهای مختلف و/یا با فیلترهای متفاوت. به عنوان مثال، تنظیمات تقویم، سرویس گیرنده ایمیل و تلفن. این الگو از کنترل Pivot استفاده می کند.
برنامه پانورامای Windows Phone - یک برنامه پانوراما که در آن مناطق تعامل کاربر نیز به پانل ها تقسیم می شوند، اما از طریق پیمایش افقی قابل دسترسی هستند. تصویر پسزمینه به طور همزمان روی کل پانوراما تنظیم میشود، عنوان مشترکی دارد که کندتر از پانلها حرکت میکند. محتوای پانل مجاور در سمت راست با نمایش پنل فعلی قابل مشاهده است. به عنوان مثال، هاب ها در ویندوز فون به این صورت پیاده سازی می شوند: افراد، بازار، تصاویر، موسیقی+ویدئوها و غیره. این الگو از کنترل پانوراما استفاده می کند.
الگوهایی که به Agent ختم میشوند، الگوهای کتابخانهای برای انجام وظایف پسزمینه مربوطه هستند:
- عامل پخش صوتی ویندوز فون
- عامل پخش صوتی ویندوز فون
- Windows Phone Scheduled Task Agent
قالب Windows Phone Databound Application - یک قالب برنامه لیست ساده - نمای دقیق با اجرای پیمایش بین صفحات با پارامترهای عبور و ذخیره داده ها در یک ViewModel جهانی.
قالب Windows Phone Class Library یک الگوی کتابخانه کلاس برای ویندوزفون است.
قالب Windows Phone Silverlight و XNA Application برای یک برنامه Silverlight که می تواند از XNA برای ارائه محتوای گرافیکی استفاده کند.
قبل از شروع کار با قابلیتهای پلتفرم و توسعه اپلیکیشن، باید مطمئن شویم که همه ابزارهای لازم را در اختیار داریم و برخی اصول توسعه را درک میکنیم.
ابزار
ویژوال استودیو 2010
برای توسعه برای Windows Phone به Visual Studio 2010 با Service Pack 1 Professional edition یا بالاتر نیاز دارید. اگر Visual Studio 2010 ندارید، نصب Windows Phone Development Tools به طور خودکار نسخه رایگان Visual Studio 2010 Express را برای Windows Phone نصب می کند که می تواند برای توسعه برنامه های Windows Phone نیز استفاده شود.
هر دو نسخه از ابزارهای توسعه یکپارچه ویژوال استودیو، قابلیت های اشکال زدایی کامل در دستگاه و شبیه ساز را در اختیار توسعه دهنده قرار می دهند، مانند توسعه دهندگان برنامه های کاربردی برای نسخه دسکتاپ ویندوز.
لطفاً توجه داشته باشید که برای رفع اشکال در دستگاه، علاوه بر خود دستگاه و کابل اتصال آن به رایانه توسعه، رایانه دارای ابزارهای توسعه باید نرم افزار Zune (http://zune.net) را نیز نصب کرده باشد. همچنین، قبل از استقرار برنامه و اشکال زدایی، لازم است دستگاه را با استفاده از ابزار ثبت نام برنامه نویس Windows Phone که با Windows Phone SDK نصب شده است، رجیستر یا «باز کردن قفل» کنید.
Windows Phone SDK
این بسته که برای دانلود در App Hub http://create.msdn.com در دسترس است، حاوی همه چیزهایی است که برای شروع توسعه نیاز دارید. در زمان نگارش این مقاله، آخرین نسخه جعبه ابزار در Windows Phone SDK 7.1 Release Candidate تحت مجوز "Go Live" با قابلیت توسعه برنامه های کاربردی خود و انتشار آنها در Windows Phone Marketplace موجود است. Windows Phone SDK 7.1 Release Candidate شامل اجزای زیر است:
- Windows Phone SDK 7.1
- شبیه ساز ویندوز فون
- مجموعه های Windows Phone SDK 7.1
- Silverlight 4 SDK و DRT
- برنامه های افزودنی Windows Phone SDK 7.1 برای XNA Game Studio 4.0
- Expression Blend SDK برای Windows Phone 7
- Expression Blend SDK برای Windows Phone OS 7.1
- سرویس گیرنده خدمات داده WCF برای Windows Phone
- Microsoft Advertising SDK برای Windows Phone
اگر Visual Studio 2010 Professional Edition، Expression Bland 4 یا XNA Game Studio 4.0 را نصب نکرده اید، مراحل نصب نیز دانلود و نصب می شود:
- Visual Studio 2010 Express برای Windows Phone
- Expression Blend 4 برای Windows Phone
- XNA Game Studio 4.0
Expression Blend و Expression Blend برای Windows Phone
Expression Blend یک طراح بصری تعاملی برای XAML است، یک فناوری توصیف رابط برای برنامههای Silverlight و Windows Presentation Foundation (WPF). این یک ابزار طراحی عالی است که به شما امکان می دهد به راحتی لایه ها، انیمیشن ها، سبک ها و قالب ها را دستکاری کنید. این یک ابزار اولیه توسعه XAML است. Expression Blend به خودی خود رایگان نیست، با این حال، یک نسخه ویژه برای ایجاد طرح های برنامه برای ویندوزفون به نام Expression Blend 4 برای ویندوزفون به صورت رایگان در دسترس توسعه دهندگان است. اگر نسخه کامل Expression Blend را در رایانه خود نداشته باشید، در حین نصب Windows Phone SDK دانلود و نصب می شود. میتوانید درباره Expression Blend 4 در MSDN بیشتر بخوانید:
XNA Game Studio 4.0
شبیه ساز ویندوز فون
اگرچه شبیه ساز Windows Phone شامل مجموعه کامل برنامه های موجود در یک دستگاه واقعی نیست، اما محیط قدرتمندی را فراهم می کند که به شما امکان می دهد تقریباً به طور کامل یک برنامه را در شبیه ساز توسعه دهید.
شبیه ساز Windows Phone از پخش محتوای رسانه ای Zune پشتیبانی نمی کند. این شبیه ساز تنها با یک برنامه داخلی اینترنت اکسپلورر ارائه می شود، اما آن اینترنت اکسپلورر 9 با پشتیبانی از HTML5 است.
در عین حال، شبیه ساز به شما امکان می دهد تماس ها را آزمایش کنید و پیام های کوتاه ارسال کنید، از مانیتورهای چند لمسی با پشتیبانی چند لمسی پشتیبانی می کند، از شبیه سازی دوربین، خدمات موقعیت جغرافیایی و شتاب سنج پشتیبانی می کند و همچنین به شما امکان می دهد اسکرین شات بگیرید.
ابزارهای توسعه دهنده اضافی
ابزار ثبت نام برنامه نویس ویندوز فون
پروفایل ویندوزفون
Windows Phone Profiler با نصب جعبه ابزار Windows Phone SDK از منوی Debug Visual Studio در دسترس است.
جعبه ابزار Silverlight برای ویندوزفون
Silverlight Toolkit for Windows Phone مجموعه ای از کنترل های Silverlight با قابلیت طراحی مفید برای Windows Phone توسط تیم توسعه Silverlight است. همه کد منبع، نمونه ها و مستندات موجود است. تقریباً هر سه ماه یکبار بهروزرسانی میشود، در http://silverlight.codeplex.com یا از طریق NuGet در دسترس است.
نسخه فعلی شامل کنترلهایی مانند ContextMenu، DatePicker و TimePicker، ToggleSwitch، WrapPanel و GestureHelper است.
محیط توسعه
پس از نصب Windows Phone SDK، گفتگوی New Project در ویژوال استودیو گروه های پروژه Silverlight برای Windows Phone را نمایش می دهد:
و پروژه هایی برای ویندوز فون به گروه XNA Game Studio 4.0 اضافه خواهند شد:
این سری از مقالات بر روی توسعه Windows Phone با Silverlight تمرکز دارد، بنابراین اجازه دهید به الگوهای موجود برای توسعه دهنده برنامه با جزئیات بیشتری نگاه کنیم.
پس از نصب، الگوهای برنامه Silverlight برای Windows Phone زیر در اختیار توسعه دهنده قرار می گیرد:
- برنامه Windows Phone
- نرم افزار Windows Phone Databound
- کتابخانه کلاس ویندوزفون
- ویندوز فون Silverlight و برنامه XNA
قبل از اینکه مستقیماً به قالب های برنامه بپردازیم، باید چند کلمه در مورد طراحی Windows Phone و Metro بگویم.
طراحی ویندوزفون و مترو
پلتفرم Windows Phone فقط یک پلتفرم دیگر برای دستگاه های تلفن همراه نیست. این نه تنها شامل یک جزء تکنولوژیکی، بلکه یک مفهوم کاملاً توسعه یافته از طراحی رابط و تعامل کاربر به نام طراحی مترو یا سبک مترو است.
اگر یک طراح هستید یا یک طراح اختصاصی در تیم خود دارید، می توانید از قدرت کامل جعبه ابزار Expression Blend 4 یا Expression Blend for Windows Phone که با Windows Phone SDK ارائه می شود، استفاده کنید.
اگر شما یک توسعه دهنده هستید و نمی خواهید با طراحی بصری اپلیکیشن سر و کار داشته باشید، مثلاً در حال توسعه یک اپلیکیشن تجاری هستید و هر آنچه از آن نیاز است با طراحی کلی و سبک ویندوزفون سازگار است، چه باید کرد؟
همه چیز بسیار ساده است. اول، Silverlight برای تلفن با طراحی مترو طراحی شده است، بنابراین تمام کنترلهای داخلی در طراحی مترو هستند. دوم، بهطور پیشفرض، برنامههایی که از قالبهای ارائهشده با Windows Phone SDK ساخته شدهاند، مطابق با طراحی مترو از سبکها و فونتها استفاده میکنند، نگاه میکنند و استفاده میکنند.
از سوی دیگر، توانایی استایل دادن به کنترلها و برنامههای مبتنی بر XAML که Silverlight ارائه میکند کافی است تا برنامه شما را منحصر به فرد و قابل تشخیص کند، در حالی که در سبک Metro باقی میماند.
راهنمای طراحی رابط کاربری و تجربه کاربری برای ویندوزفون در لینک زیر قابل مشاهده است
همه آنچه در بالا گفته شد، البته در مورد طراحی برنامه های معمولی صدق می کند، زیرا الزامات طراحی برنامه های بازی و رابط آنها می تواند به طور قابل توجهی متفاوت باشد. در عین حال، نباید اصول کلی تعامل کاربر را که در مفهوم ویندوزفون تعبیه شده است، فراموش کرد.
قالب های کاربردی
ابتدا، اجازه دهید نگاهی به سه الگو بیندازیم، که سه سبک اصلی یک برنامه Windows Phone هستند:
- برنامه Windows Phone
- برنامه Windows Phone Pivot
- برنامه پانورامای ویندوز فون
برنامه Windows Phone آنالوگ یک برنامه مکالمه ساده است که دارای یک صفحه اصلی است که از طریق آن تعامل اصلی با کاربر انجام می شود.
Windows Phone Pivot Application به نوعی مانند یک برنامه نشانک است که عنوان هر نشانک محتوا را مشخص می کند. مورد استفاده استاندارد این است که هر نشانک دادههای یکسانی را به طور کلی نشان میدهد، اما در نماهای مختلف و/یا با فیلترهای متفاوت. به عنوان مثال، تنظیمات تقویم، سرویس گیرنده ایمیل و تلفن. این الگو از کنترل Pivot استفاده می کند.
برنامه پانورامای Windows Phone - یک برنامه پانوراما که در آن مناطق تعامل کاربر نیز به پانل ها تقسیم می شوند، اما از طریق پیمایش افقی قابل دسترسی هستند. تصویر پسزمینه به طور همزمان روی کل پانوراما تنظیم میشود، عنوان مشترکی دارد که کندتر از پانلها حرکت میکند. محتوای پانل مجاور در سمت راست با نمایش پنل فعلی قابل مشاهده است. به عنوان مثال، هاب ها در ویندوز فون به این صورت پیاده سازی می شوند: افراد، بازار، تصاویر، موسیقی+ویدئوها و غیره. این الگو از کنترل پانوراما استفاده می کند.
الگوهایی که به Agent ختم میشوند، الگوهای کتابخانهای برای انجام وظایف پسزمینه مربوطه هستند:
- عامل پخش صوتی ویندوز فون
- عامل پخش صوتی ویندوز فون
- Windows Phone Scheduled Task Agent
قالب Windows Phone Databound Application یک الگوی برنامه ساده با نمای لیست است - نمای دقیق با اجرای پیمایش بین صفحات با انتقال پارامترها و ذخیره سازی داده ها در VeiwModel جهانی.
قالب Windows Phone Class Library یک الگوی کتابخانه کلاس برای ویندوزفون است.
قالب Windows Phone Silverlight و XNA Application برای یک برنامه Silverlight که می تواند از XNA برای ارائه محتوای گرافیکی استفاده کند.
ساخت یک اپلیکیشن ساده
در گفتگوی New Project Visual Studio، Visual C#، Silverlight برای Windows Phone و یک الگوی ساده Windows Phone Application را انتخاب کنید و نام آن را ExploringXAMLFeatures بگذارید.
در گفتگوی انتخاب سیستم عامل مورد نظر، سیستم عامل Windows Phone 7.1 را انتخاب کنید
پس از ایجاد پروژه، پنجره ویژوال استودیو به این صورت خواهد بود
ساختار پروژه را در پنجره Solution Explorer در نظر بگیرید:
نام فایل | هدف |
AppManifest.xml | فایل مانیفست مورد نیاز برای تولید فایل XAP که برنامه برای استقرار در تلفن در آن بسته بندی شده است. |
AssemblyInfo.cs | فایل پیکربندی دیگری که برخی از ابرداده های اسمبلی اصلی (Assembly) برنامه را تعریف می کند. |
WMAppManifest.xml | یک فایل ابرداده که شامل انواع تنظیمات برنامه است: عنوان، تنظیم صفحه اول، مسیرهای آیکون ها، تعریف ویژگی های سیستم مورد نیاز و غیره. |
app.xaml | این یک فایل منبع برنامه است. این جایی است که منابع جهانی قرار دارند (این مورد در هنگام استفاده از سبک ها مورد بحث قرار می گیرد) یا رویدادهای جهانی (زمانی که برنامه شروع می شود رخ می دهد). این فایل همچنین نقطه ورود اپلیکیشن است. |
App.xaml.cs | فایل کد (code-behind) برای App.xaml. در اینجا می توانید رویدادها و خطاهای سطح برنامه، از جمله سنگ قبر آن را مدیریت کنید. این مفهوم بعداً هنگامی که چند وظیفه ای مورد بحث قرار می گیرد، پوشش داده خواهد شد. |
ApplicationIcon.png | تصویری که نماد برنامه روی گوشی خواهد بود. این یک فایل واقعا مهم است زیرا اولین چیزی است که کاربران هنگام استفاده از برنامه مشاهده می کنند. |
Background.png | این تصویر زمانی استفاده می شود که برنامه به صفحه شروع گوشی پین شود. در واقع، این یک نماد برنامه بزرگ است. منطقی است که آن را از نظر بصری شبیه به ApplicationIcon.png کنیم. |
MainPage.xaml | این بخشی از الگوی برنامه انتخاب شده است. نام MainPaige خیلی خوب نیست، اما این همان چیزی است که قالب پروژه پیش فرض استفاده می کند. این صفحه نشان دهنده رابطی است که کاربر هنگام شروع برنامه می بیند. |
MainPage.xaml.cs | فایل کد صفحه MainPage.xaml. |
SplashScreenImage.jpg | این تصویر در حین دانلود + اپلیکیشن نمایش داده می شود. می توانید تصویر خود را با انیمیشن تنظیم کنید تا از بارگیری برنامه مطلع شوید. تکنیکی برای ایجاد صفحات بارگذاری بسیار پویا در XNA وجود دارد، اما بسیار فراتر از محدوده این سری مقاله است. |
فایل های XAML رابط کاربری یک برنامه را تعریف می کنند. در واقع، اینها فقط فایل های XML با زبان نشانه گذاری XAML هستند.
اگرچه این ساده ترین پروژه است، اما شامل تمام عناصر کلیدی است که همه قالب ها و انواع پروژه های دیگر شامل می شوند.
لطفاً توجه داشته باشید که برخی از تنظیمات ارائه شده به عنوان فایل های پیکربندی را می توان در رابط بصری برای ویرایش تنظیمات برنامه ویرایش کرد.
افزودن کنترل ها به صفحه XAML
توجه داشته باشید که ویژوال استودیو هم طراحی و هم XAML صفحه را به صورت پیش فرض رندر می کند.
اگر به فایل های راه حل دیگری پیمایش کرده اید، روی فایل MainPage.xaml دوبار کلیک کنید.
در کد XAML فایل MainPage.xaml، در داخل یک عنصر Grid به نام ContentPanel، یک کنترل دکمه را وارد کنید:
در پنجره طراحی، دکمه بلافاصله تقریباً در مرکز رابط ظاهر می شود. به صفت توجه کنید نام? این شناسه منحصر به فرد عنصر است که به شما کمک می کند به آن در کد خود مراجعه کنید. این شناسه را به عنوان یک ویژگی کنترل در نظر بگیرید. حالا بیایید با کلیک روی این دکمه، چند عمل اضافه کنیم. دو راه برای اتصال یک رویداد به یک دکمه (یا هر کنترل دیگری) وجود دارد. در XAML، دقیقاً در تعریف Button، میتوانیم ویژگی Click را اضافه کنیم و سیستم InteliSense به طور خودکار از شما میپرسد که آیا میخواهیم یک کنترل کننده رویداد جدید ایجاد کنیم:
میتوانید کنترلکننده رویداد را مستقیماً در کد صفحه Home.xaml.cs بدون تعیین آن در فایل XAML متصل کنید:
MainPage() عمومی (InitializeComponent(); MyButton.Click +=new RoutedEventHandler(MyButton_Click);)
هر دو روش کار می کنند. شما می توانید از هر یک از آنها استفاده کنید. برای سادگی، از تعریف روش XAML در اینجا استفاده خواهد شد. اکنون در تابع MyButton_Click می توانید کد مدیریت شده ای بنویسید که رابط را تغییر می دهد یا توابع دیگر را فراخوانی می کند. بیایید نمونه درخواست خود را با افزودن کدی تکمیل کنیم که متن TextBlock PageTitle (PageTitle یک نام است تا بتوانید مستقیماً در کد به آن مراجعه کنید) به "hello wp7" تغییر میدهد. برای این کار کد زیر را به تابع اضافه کنید:
Private void MyButton_Click (فرستنده شی، RoutedEventArgs e) ( PageTitle.Text = "hello wp7"؛ )
در تنظیمات پروژه Windows Device Emulator را انتخاب کنید
و با کلیک بر روی مثلث سبز رنگ یا دکمه F5 اپلیکیشن را اجرا کنید. پس از راه اندازی برنامه و کلیک بر روی دکمه "Click me"، صفحه باید شبیه تصویر زیر باشد:
افزودن صفحات جدید به پروژه
فقط ساده ترین برنامه از یک صفحه تشکیل شده است. ما می خواهیم یاد بگیریم که چگونه برنامه های پیچیده چند صفحه ای بنویسیم. میتوانیم از قالبهای Pivot، Panorama، میتوانیم از الگوی طراحی MVVM (Model-View-ViewModel) استفاده کنیم، اما ابتدا یاد میگیریم که چگونه صفحات جدید را به پروژه اضافه کنیم و بین آنها حرکت کنیم.
در پنجره Solution Explorer روی نام پروژه کلیک راست کنید و در منوی ظاهر شده گزینه Add و سپس New Item را انتخاب کنید، در کادر محاوره ای باز شده Windows Phone Portrait Page را انتخاب کنید و نام آن را SecondPage.xaml بگذارید:
ما اکنون یک صفحه XAML خالی داریم، یک کپی دقیق از صفحه MainPage.xaml قبل از اینکه آن را ویرایش کنیم.
برای تشخیص بهتر صفحات، اجازه دهید به کد XAML صفحه SecondPage برویم و ویژگی Text عنصر TextBlock را با Name PageTitle مطابق شکل زیر ویرایش کنیم:
پیمایش بین صفحات برنامه
بنابراین، ما دو صفحه در پروژه داریم که با شروع برنامه، صفحه MainPage.xaml نمایش داده می شود. چگونه می توانم اکنون از MainPage.xaml به SecondPage.xaml حرکت کنم؟
بیایید دو راه ساده برای انجام این کار را امتحان کنیم.
در کد XAML فایل MainPage.xaml، پس از کد Button که قبلا اضافه کردیم، کد HyperlinkButton را مانند شکل زیر اضافه کنید:
کنترل HyperlinkButton دارای ویژگی NavigateUri ویژه ای است که به شما امکان می دهد Uri را برای پیمایش مشخص کنید. بیایید این ویژگی را با مقدار /SecondPage.xaml مانند شکل زیر اضافه کنیم:
بیایید برنامه (F5) را شروع کنیم.
وقتی رابط برنامه نمایش داده شد، اگر روی لینک Second Page کلیک کنیم، به صفحه دوم SecondPage.xaml که قبلا ایجاد شده بود هدایت می شود. اگر پس از آن دکمه سخت افزار Back را فشار دهیم، به صفحه اصلی (قبلی) باز خواهیم گشت - به طور پیش فرض، این دکمه به شما امکان می دهد به صفحه فعال قبلی بروید.
حالا بیایید از انتقال برنامه ای استفاده کنیم. ابتدا کد زیر را به قسمت use اضافه کنید:
Private void MyButton_Click(فرستنده شی، RoutedEventArgs e) ( NavigationService.Navigate (Uri جدید("/SecondPage.xaml"، UriKind.Relative))؛ )
برنامه (F5) را اجرا کنید و مطمئن شوید که دکمه مانند لینک کار می کند.
بیایید کنترل ها و کدهایی را به صفحه دوم (SecondPage.xaml) اضافه کنیم که به ما امکان می دهد به صفحه قبلی بازگردیم.
در کد XAML فایل SecondPage.xaml، در داخل یک عنصر Grid به نام ContentPanel، کنترلهای Button و HyperlinkButton را مطابق شکل زیر وارد کنید:
برای ایجاد یک کنترل کننده رویداد Click برای دکمه MyButton در SecondPage، روی متن MyButton_Click در ویرایشگر XAML راست کلیک کرده و Navigae to Event Handler را انتخاب کنید.
برنامه (F5) را اجرا کنید و مطمئن شوید که پیوند "صفحه اول" در صفحه دوم برنامه را به صفحه اصلی باز می گرداند.
حالا بیایید از انتقال برنامه ای استفاده کنیم. در کد صفحه SecondPage.xaml.cs، کد زیر را به بخش use اضافه کنید:
با استفاده از System.Windows.Navigation.
و سپس کد کنترل کننده MyButton_Click را با کد زیر جایگزین کنید:
Private void MyButton_Click(فرستنده شی، RoutedEventArgs e) ( NavigationService.GoBack();
برنامه (F5) را اجرا کنید و مطمئن شوید که دکمه برگشت در صفحه دوم برنامه را به صفحه اصلی باز می گرداند.
لطفاً توجه داشته باشید که در کدی که با کلیک کردن روی دکمه راهاندازی میشود، از نام صفحهای که باید به آن برویم استفاده نکردهایم، بلکه از سرویس ناوبری که توسط کلاس NavigationService نشان داده شده است، خواستهایم که به صفحهای که در پشته ناوبری قبل از فعلی.
رویدادهای انتقال صفحه را میتوان به صورت برنامهنویسی مدیریت کرد، برای مثال، از کاربر بپرسید که آیا واقعاً میخواهد صفحه فعلی را ترک کند یا خیر.
کد زیر را بلافاصله بعد از کنترل کننده MyButton_Click به فایل SecondPage.xaml.cs اضافه کنید:
Protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) (base.OnNavigatingFrom(e); // اگر پیمایش را می توان لغو کرد، از کاربر بپرسید که آیا می خواهد در صفحه فعلی بماند اگر (e.IsCancelable) ( MessageBoxResult resultS = MessageBox. ("ممکن است بمانید؟"، "تأیید انتقال"، MessageBoxButton.OKCancel)؛ اگر (نتیجه == MessageBoxResult.OK) (// کاربر تصمیم به ماندن داشت e.Cancel = درست؛ بازگشت؛ ) )
کد به اندازه کافی ساده است که می توانید آن را به تنهایی کشف کنید.
برنامه (F5) را اجرا کنید و متوجه شوید که یک گفتگوی شفاف کننده نمایش داده می شود، صرف نظر از اینکه می خواهید با کلیک بر روی یک دکمه یا با کلیک کردن روی یک پیوند، به صفحه اصلی بازگردید.
اکنون باید یاد بگیرید که چگونه پارامترها را بین صفحات منتقل کنید.
برای ویرایش صفحه اصلی روی MainPage.xaml دوبار کلیک کنید. در کد MainPage.xaml، بیایید یک کنترل TextBox، در بالای کنترل Button، مانند شکل زیر اضافه کنیم:
برای ویرایش صفحه اصلی روی SecondPage.xaml دوبار کلیک کنید. در کد SecondPage.xaml، بیایید یک کنترل TextBox، در بالای کنترل Button، درست مانند صفحه اصلی اضافه کنیم:
اکنون، در کنترل کننده رویداد MyButton_Click صفحه اصلی، پارامترهایی را به Uri انتقال به صفحه دوم با دکمه اضافه کنید:
Private void MyButton_Click (فرستنده شی، RoutedEventArgs e) ( NavigationService.Navigate(new Uri("/SecondPage.xaml?text=" +Uri.EscapeDataString(MyTextBox.Text)، UriKind.Relative));
و در نهایت، در کد صفحه SecondPage.xaml.cs، بلافاصله پس از کنترل کننده OnNavigatedFrom، کنترل کننده ورود صفحه OnNavigatedTo را اضافه کنید و پارامتر ورودی را در آن پردازش کنید و در MyTextBox نمایش دهید:
لغو محافظت شده از درجه اعتبار ساقط OnNavigatedTo(NavigationEventArgs e) (base.OnNavigatedTo(e)؛ if (NavigationContext.QueryString.ContainsKey("text")) (MyTextBox.Text = NavigationContext.QueryString["text.)";
برنامه (F5) را اجرا کنید و بررسی کنید که چگونه کار می کند، به عنوان مثال هنگام دنبال کردن یک پیوند از صفحه اصلی به SecondPage.
خلاصه و مراحل بعدی
بنابراین، ما متوجه شدیم که چه چیزی برای توسعه در ویندوز فون 7 باید نصب شود، با قالب های موجود آشنا شدیم و نحوه ایجاد یک برنامه جدید از یک الگو را یاد گرفتیم. همچنین یاد گرفتیم که چگونه کنترلها را مستقیماً به کد XAML اضافه کنیم، صفحات جدید را به پروژه اضافه کنیم و یک انتقال بین آنها را با پیوند و در کد با قابلیت ارسال پارامترها سازماندهی کنیم.
در مرحله بعدی، نگاهی به برخی از گزینههای نشانهگذاری موجود در Silverlight میاندازیم، به کنترلهای اصلی نگاه میکنیم و در مورد زمینه ورودی فیلدهای متنی یاد میگیریم.