מדריך Windows Phone

מדריך Windows Phone – שימוש ב Tiles

‏ • Sela

במערכת ההפעלה Windows Phone, המילה Tile (או אריח בעברית) מציינת לינק לאפליקציה שנמצא במסך הראשי של הפלאפון. ישנם שני סוגי Tile: ראשי ומשני.

ה Tile  הראשי נוצר כאשר המשתמש נועץ אפליקציה למסך הראשי. לחיצה על ה Tile הראשי תפתח את האפליקציה בדף הפתיחה שלה.

Tile משני יכול להיווצר רק באמצעות קוד ומטרתו לאפשר למשתמשים לפתוח את האפליקציה במצב מסוים. לדוגמא אפליקציית מזג אוויר יכולה ליצור Tile משני עבור כל עיר שמעניינת את המשתמש.

 

מבנה Tile

החל מגרסת "מנגו" של מערכת ההפעלה Windows Phone, ל Tile יכולים להיות שני צדדים, שמתחלפים לסירוגין כל כמה שניות.

מבנה הצד הקדמי מתואר בתרשים הבא:

מדריך Windows Phone – שימוש ב Tiles

כאשר השדה הראשון הוא מספר בין 0 ל 99. אם הערך הוא 0 העיגול עם המספר לא יוצג כלל.

מבנה הצד האחורי של Tile מתואר בתרשים הבא:

מדריך Windows Phone – שימוש ב Tiles

נעיר כי אם לא נקבע אף אחת מהתכונות האחוריות של ה Tile אזי ל Tile יהיה רק צד קדמי.

בנוסף, כדאי לדעת שגודל Tile הוא 173 פיקסלים לאורך ולרוחב. תמונות רקע שיקבעו לTile ימתחו באופן אוטומטי כך שיתאימו לגודל זה.

 

עבודה עם Tile ראשי

כאמור, Tile ראשי אינו יכול להיווצר ע"י מפתח האפליקציה, אלא רק ע"י המשתמש ע"י נעיצת האפליקציה למסך הפתיחה, אולם מפתח האפליקציה יכול לשלוט בחלקים ממבנה ה Tile ע"י שינוי השדות הרלוונטיים בהגדרות הפרויקט:

מדריך Windows Phone – שימוש ב Tiles

 

 

כיצד ליצור Tile משני?

כדי ליצור Tile משני נשתמש ב פונקציה Create של המחלקה ShellTile. פונקציה זו מקבלת כפרמטר ראשון את הלינק שצריך להפעיל כאשר ה Tile נלחץ. הפרמטר השני הוא מבנה אשר מכיל את כל הנתונים המאפיינים Tile כגון כותרת, תמונת רקע, מספר וכו'.

להלן קוד אשר יוצר Tile משני:

StandardTileData standardTileData = new StandardTileData()
{
    Title = "Secondary Tile",
    Count = 42,
    BackgroundImage = new Uri("TileRed.png", UriKind.Relative),
    BackTitle = "Back Title",
    BackContent = "back content",
    BackBackgroundImage = new Uri("TileBlue.png", UriKind.Relative)
};

ShellTile.Create(new Uri("/MainPage.xaml?FromTile=true", UriKind.Relative), standardTileData);

 

לאחר הפעלת הקוד הנ"ל נקבל את ה Tile המשני המופיע בתמונה הבאה:

מדריך Windows Phone – שימוש ב Tiles

 

אם נרצה לעדכן או למחוק Tile נצטרך ראשית למצוא אותו ע"י שימוש בתכונה הסטטית ShellTile.ActiveTiles שמכילה את רשימת כל ה Tile הפעילים במערכת.

לדוגמא, קטע הקוד הבא מוצא את ה Tile המשני שיצרנו מקודם ומעדכן את המספר שלו:

ShellTile TileToFind = 
  ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("FromTile=true"));

if (TileToFind != null)
{
  StandardTileData standardTileData = new StandardTileData()
  {
    Count = 43
  };
  TileToFind.Update(standardTileData);
}

 

להלן התוצאה:

 

מדריך Windows Phone – שימוש ב Tiles

 

הערה: ה Tile הראשון ברשימה ShellTile.ActiveTiles הוא תמיד ה Tile הראשי (בין אם הוא מוצג או לא), וניתן לעדכן את הערכים שלו באותו אופן.

לבסוף, ניתן למחוק Tile משני ע"י שימוש בקוד הבא:

ShellTile TileToFind =
  ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("FromTile=true"));

if (TileToFind != null)
{
  TileToFind.Delete();
}

עדכון מחזורי של Tile

כעת נראה כיצד ניתן לעדכן את תמונת הרקע של Tile באופן מחזורי.

הערה: רק תמונת הרקע ניתנת לעדכון בצורה מחזורית.

בקטע הקוד הבא אנו יוצרים מחלקה מסוג ShellTileSchedule שאחראית על העדכון המחזורי. מחלקה זו מקבלת כפרמטר את המופע של ShellTile הרלוונטי ל Tile שאותו אנו מעוניינים לעדכן.

בנוסף, אנו מעבירים למחלקה את פרטי התזמון, האם מדובר בעדכון חד פעמי, או עדכון קבוע, ומהו זמן ההתחלה. הפרמטר המרכזי הוא השדה RemoteImageUri שמכיל את התמונה שיש לקרוא מהרשת בכל פעם שהעדכון נקרא.

 

ShellTileSchedule shellTileSchedule = 
  new ShellTileSchedule(ShellTile.ActiveTiles.FirstOrDefault());

// Update will happen one time.
shellTileSchedule.Recurrence = UpdateRecurrence.Onetime;

// Start the update schedule now, but because updates are batched, the update may not happen for an hour or so.
shellTileSchedule.StartTime = DateTime.Now;

shellTileSchedule.RemoteImageUri =
  new Uri(@"http://www.weather.gov/forecasts/graphical/images/conus/MaxT1_conus.png");
shellTileSchedule.Start();

 

 

תוצאת הריצה של הקוד הנ"ל תראה כך (לאחר שהעדכון יבוצע):

מדריך Windows Phone – שימוש ב Tiles

תגיות: , , , ,

arikp

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.

תגובות בפייסבוק