Есть ли способ изменить размер текста на обратной стороне Windows Phone 8 Live Tiles?

Я использую шаблон флип для моих плиток. На странице MSDN текст виден как для переноса, так и для меньшего размера.

Это не репрезентативно для поведения, которое я вижу в своих живых клетках. Я могу получить максимум 3 строки большого текста на широкой живой плитке. Текст не переносится. Это происходит на всех экранах разных эмуляторов. К сожалению, я могу получить 4 строки текста на живой плитке Medium, но дополнительная строка контента слишком длинна, чтобы туда поместиться, так что я ее не включаю.

Я периодически обновляю свои плитки, используя запланированное задание:

Earthquake latest = quakes.First();
newTileData = new FlipTileData
{
    Title = String.Format(AppResources.LiveTileTitleFormat, quakes.Count),
    BackTitle = String.Format(AppResources.LiveTileTitleFormat, quakes.Count),
    BackContent = String.Format(AppResources.LiveTileBackContentFormat,  latest.FormattedMagnitude, latest.FormattedDepth),
    WideBackContent = String.Format(AppResources.LiveTileWideBackContentFormat, latest.FormattedMagnitude, latest.FormattedDepth, latest.RelativeLocation)
};

ShellTile tileToFind = ShellTile.ActiveTiles.First();
if (tileToFind != null)
{
    tileToFind.Update(newTileData);
}

Эмулятор слева пытается показать 4 строки. Эмулятор справа показывает текст без переноса.

Итак, есть ли способ форсировать четвертую строку, или указать меньший размер шрифта, или оба? Я подозреваю, что нет, и статья MSDN просто показывает живые плитки Windows 8 (не WP8).

1 ответ

Решение

Изменить размер текста на плитках WP8 невозможно. Вы можете подделать его, создав вместо него изображение и поместив его на плитку:

  1. Создайте пользовательский элемент управления для размещения элемента управления изображением и текстового блока.
  2. Присвойте изображение мозаики элементу управления изображением, а текст с желаемым размером - текстовому блоку.
  3. Затем создайте снимок элемента управления с помощью следующего кода.
  4. используйте это изображение для реализации генерации плитки.

     private WriteableBitmap RenderControlAsImage(UserControl element)
     {
        element.UpdateLayout();
        element.Measure(new Size(element.Width, element.Height));
        element.Arrange(new Rect(0, 0, element.Width, element.Height));
        return new WriteableBitmap(element, null);
     }
    
Другие вопросы по тегам