Ibraheem Osama Mohamed (ابراهيم اسامه محمد)

Welcome to my blog :)

Windows 8 Secondary Tiles with Live Tiles C# (Arabic)

leave a comment »

هل تحب مواقع الاخبار ؟ هل يوجد قسم محدد الذى تحب دائما لقراءته !! فى تطبيقات الاخبار كى تصل الى القسم المراد تقوم بعددة خطوات للوصول الية .
تخيل الاتى : يوجد مدخل مباشر الى القسم المراد من ال Start Screen و توفير كل هذة الخطوات.
هذا التخيل هو ال Secondary Tile و هى تقوم بأنشاء مدخل من البرنامج للصفحة المراده مباشرة.
سوف نتحدث اليوم عن كيفية اضافة ال Secondary Tile فى تطبيقك لكن قبل ان نبدأ يجب ان نكون على علم بالمميزات التى تتيح لنا استخدام ال Secondary Tile
1)ال Secondary Tile تاخذك لصفحة بعينها و لكن هل بأمكان تطبيقك معرفة ما اذا كان هذا الصفحة مفتوحة من داخل التطبيق ام مفتوحة من ال Secondary Tile ؟؟ نعم
2)هل بامكانى الغاء ال Secondary Tile من داخل التطبيق ؟؟ نعم
3) هل بامكانى معرفة اذا كان المستخدم وضع ال Secondary Tile فى ال Start Screen كمدخل اخر للتطبيق ؟؟ نعم
4) هل يمكن ان استخدم ال Secondary Tile ك Live Tile فى تطبيقى ؟؟ نعم

كل هذة المميزات من الممكن ان تسخدمها داخل تطبيقك . فى هذا المقال سوف نكون معا Live Tile داخل ال Secondary Tile
1) افتح ال Visual Studio -> انشئ تطبيق Windows 8 جديد باستخدام لغة ال #C
2)قم باضافة صفحة اخرى لتكون هذة الصفحة هى الصفحة المراد فتحها من ال Secondary Tile و سميها SecondaryTilePage
3) قم باضافة Button ليذهب بك الى الصفحة الجديدة و اضف Event على ال button ليذهب بك الى الصفحة الاخرى

this.Frame.Navigate(typeof(SecondaryTilePage));

4)قم باضافة Button PinSecondaryTileButton فى ال SecondaryTilePage ليقوم بوضع ال Secondary Tile عند الضغط عليه و اضف Event عليه و قم باضافة TextBlock لتظهر علية ماذا يحدث الان فى التطبيق و سمية StatusTextblk

هناك بعض خصائص ال Secondary Tile مثل ال Small Logo فى هذا التطبيق سوف نستخدم ال Logos الموجودة فى التطبيق
و الان سوف نرى الكود المسؤول عن ال Secondary Tile قم باضافة فى ال Event Handler ل PinSecondaryTileButton

Uri logo = new Uri("ms-appx:///Assets/Logo.png");
Uri smallLogo = new Uri("ms-appx:///Assets/SmallLogo.png");                          
string tileActivationArguments = " PinnedAt : " + DateTime.Now.ToLocalTime().ToString();             
SecondaryTile secondaryTile = new SecondaryTile("Secondary_Tile11",                                                  "Secondary Tile Only",
"Secondary Tile Only",
tileActivationArguments,
TileOptions.ShowNameOnLogo | TileOptions.ShowNameOnWideLogo,                                                         logo);             
secondaryTile.SmallLogo = smallLogo;             
secondaryTile.ForegroundText = ForegroundText.Light;             
bool isPinned = await secondaryTile.RequestCreateForSelectionAsync(GetElementRect((FrameworkElement)sender), Windows.UI.Popups.Placement.Below);             
if (isPinned)             
{                 
StatusTextblk.Text = "Pinned";             
}             
else             
{                 
StatusTextblk.Text = "Error";             
}

هناك ايضا ال Function المسؤلة عن GetElementRect

public static Rect GetElementRect(FrameworkElement element)
{       
GeneralTransform buttonTransform = element.TransformToVisual(null);
Point point = buttonTransform.TransformPoint(new Point());
return new Rect(point, new Size(element.ActualWidth, element.ActualHeight));
}

5)الان قم بتشغيل التطبيق و اذهب الى الصفحة الثانية و قم بالضغط على Pin Secondary Tile Button و اخرج لل Start Screen لترى

1

6) جاء وقت ان نضيف Live Tile لل Secondary Tile . هل تتذكر كيف قمنا باضافة Live Tile فى المقالات السابقة ؟؟ سوف نستخدم الطريقة الثانية و هى اضافة ال classes المساعدة و لمذيد عن ال Live Tile الرجاء الرجوع الى المقالين السابقين 🙂

7)قم باضافة SendLiveTileButton Button و اضف Event لة و فى هذا ال Event قم بكتابة الاتى

ITileSquareText04 squareContent = TileContentFactory.CreateTileSquareText04();
squareContent.TextBodyWrap.Text = "Sent Live Tile to a secondary tile!";
TileUpdateManager.CreateTileUpdaterForSecondaryTile("Secondary_Tile11").Update(squareContent.CreateNotification());

7) قم باضافة Reference لكل من ال TileContentFactory و TileUpdateManager
3

8)الان قم بتشغيل التطبيق و اذهب الى الصفحة الثانية و قم بتشغيل بالضغط على Send Live Tile Button لترى الاتى

2

هكذا قمنا باضافة Live Tile ل Secondary Tile ان كان لك اى سؤال ارجوك لا تتردد فى سؤالى 🙂
شكرا

2056910448_thanks_xlarge

Ibraheem Osama Mohamed
IbraheemOM@

Advertisements

Written by Ibraheem Osama Mohamed

July 5, 2013 at 12:09 pm

Posted in C#, Windows 8, Windows8, xaml

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: