Есть ли способ изменить размер текста на обратной стороне 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 невозможно. Вы можете подделать его, создав вместо него изображение и поместив его на плитку:
- Создайте пользовательский элемент управления для размещения элемента управления изображением и текстового блока.
- Присвойте изображение мозаики элементу управления изображением, а текст с желаемым размером - текстовому блоку.
- Затем создайте снимок элемента управления с помощью следующего кода.
используйте это изображение для реализации генерации плитки.
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); }