2015-02-11 4 views
1

Я рендеринга Bitmap из фрагмента Xaml с использованием: https://stackoverflow.com/a/26184524/3853371. Растровое изображение отлично выглядит, но когда я пытаюсь установить его как значок AppBarButton, я получаю следующее: enter image description hereWindows Phone 8.1 RT - проблемы с иконкой AppBarButton

Изображенное изображение выполнено из сетки с 2 текстовыми блоками, и это не закругленный прямоугольник с X в середине.

<Grid x:Name="TodayIconImage" Height="41" Width="41"> 
     <TextBlock x:Name="dayTextBlock" Text="12" Style="{ThemeResource MessageDialogTitleStyle}" FontSize="20" HorizontalAlignment="Center" Margin="0,0,0,0"/> 
     <TextBlock x:Name="monthTextBlock" Text="Feb" Style="{ThemeResource MessageDialogContentStyle}" FontSize="12" HorizontalAlignment="Center" Margin="0,20,0,0"/> 
</Grid> 

ответ

1

Это то, что я ожидаю, если ваш оригинальный xaml представляет собой закругленный прямоугольник с X в середине. Граница круга добавляется автоматически и не является обязательной. Для значка X вы можете использовать стандартный символ отмены. Если вы хотите прямоугольную кнопку, вы не можете использовать AppBar, но вам нужно будет создать пользовательский интерфейс.

Вы должны использовать сплошное прозрачное изображение с центрированным значком и достаточным заполнением для круга AppBarButton. Версия с 240-процентным масштабом должна иметь значок 41x41 пиксела с 18-кратным прописью со всех сторон (см. Details on sizing, padding, scaling, and transparency for Windows Phone Store apps в Guidelines for app bars)

Если ваш общий размер растрового изображения слишком велик, он будет уменьшен до размера. Прокладка по-прежнему должна быть пропорциональной.

+0

Я вижу, что я не дал достаточно информации о моей проблеме. Вопрос теперь отредактирован. – Vil

+1

Хорошо. Изображение, которое вы получили, было для пустого BitmapIcon. Телефон требует, чтобы UriSource BitmapIcon был URI протокола ms, а не необработанным (Windows не заботится). Обновление ссылки на ms-appdata: /// temp/ должно решить проблему для вас. –