private void ShowTileCategory(Grid host, ComboBox comboBox)
        {
            string category = (string)comboBox.SelectedItem;

            this.ActiveCategory = category;
            ListBox lb = new ListBox()
            {
                VerticalAlignment = System.Windows.VerticalAlignment.Stretch
            };
            List <Tile> tiles = TileStore.GetTilesInCategory(category);

            foreach (Tile tile in tiles)
            {
                ListBoxItem lbi = new ListBoxItem();
                StackPanel  sp  = new StackPanel()
                {
                    Orientation = System.Windows.Controls.Orientation.Horizontal
                };
                sp.Children.Add(new Image()
                {
                    Source = tile.Image, Margin = new Thickness(0, 0, 10, 0)
                });
                sp.Children.Add(new TextBlock()
                {
                    Text = tile.Name
                });
                lbi.Content = sp;
                lb.Items.Add(lbi);
            }
            lb.SelectionChanged += new SelectionChangedEventHandler(lb_SelectionChanged);
            host.Children.Add(lb);
        }
        void lb_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ListBox lb       = (ListBox)sender;
            string  category = this.ActiveCategory;

            if (!string.IsNullOrEmpty(category))
            {
                List <Tile> tiles = TileStore.GetTilesInCategory(category);
                int         index = lb.SelectedIndex;
                if (index >= 0)
                {
                    this.ActiveTile = tiles[index];
                }
            }
        }