Simple Tiling

The default live tile for our application is rather unappealing. Surely there’s something better we can do with our 150x150px than that :) At the very least, we want to fix the title and display the current generation. Maybe some more ideas will come to us while we’re implementing them.

To get started, double-click Package.appxmanifest in the Solution Explorer and update the app display name and description. For tiles, I’ve updated the logo PNGs to be a screenshot of our cellmap at some random point in time and set the background to be a totally arbirtrary color (#38864D). For the splashscreen we now have an obviously developer-designed image and a matching background color of #FFFFFF. So far, so good.

Next, grab NotificationExtensions, build it, and add a local reference to your project (I put it into a 3rdparty folder). Honestly, I’m not sure why this wasn’t built into the framework. Also, there are (currently) some quirks in that project between the Debug and Release versions; they won’t affect us for now so I’m referencing the Debug winmd file. Add the following lines to timer_Tick

var tileContent = TileContentFactory.CreateTileSquareText03(); 

tileContent.TextBody1.Text =  string.Format("Generation: {0}", viewModel.Generation); 
tileContent.TextBody2.Text = string.Format("% Alive: {0}", cellMap.PercentageOfAliveCells); 

var tileNotification = tileContent.CreateNotification(); 

TileUpdateManager.CreateTileUpdaterForApplication()
                 .Update(tileNotification);

and these to CellMap to handle the new PercentageOfAliveCells property

private int numberOfAliveCells; 

// At the end of SetCell 
numberOfAliveCells++; 

// At the end of ClearCell 
numberOfAliveCells--; 

public int PercentageOfAliveCells 
{ 
  get 
  { 
    return (int)(numberOfAliveCells * 100 / width / height); 
  } 
}

image

Now when we run the app, we get something not-quite-as-hideous!

(Code so far)

comments powered by Disqus