Стиль свойства Windows Phone ApplicationBar BackgroundColor XamlParseException

В моем приложении было много страниц, и я решил сделать глобальный стиль ApplicationBar в App.Resources:

<Style TargetType="shell:ApplicationBar">
    <Setter Property="BackgroundColor" Value="#006699" />
</Style>

Однако, когда я попытался запустить приложение, VS выдал мне ошибку:

The property 'BackgroundColor' was not found in type 'Microsoft.Phone.Shell.ApplicationBar'.

Это неправда — Свойство ApplicationBar.BackgroundColor. В чем проблема?


person Alec Mev    schedule 26.11.2011    source источник


Ответы (1)


Я считаю, что свойства ApplicationBar не могут использовать Binding или стиль так, как вы пытаетесь, поскольку это не элемент управления Silverlight. Хотя можно поставить whole панель приложений в качестве ресурса. Вот так

<shell:ApplicationBar x:Key="MyAppBar" IsVisible="True" BackgroundColor="#006699">
         <shell:ApplicationBarIconButton IconUri="/Images/image.png" Text="image"  IsEnabled="True"/>  
</shell:ApplicationBar>

РЕДАКТИРОВАТЬ: Или вы можете просто поместить это в ресурс, если хотите изменить цвет панели приложений.

<shell:ApplicationBar x:Key="MyAppBar" IsVisible="True" BackgroundColor="#006699">
</shell:ApplicationBar>

И добавьте кнопки из кода позади. хотя я не встречал сценария, в котором это помогло бы.

person abhinav    schedule 26.11.2011
comment
К сожалению, это не решит мою проблему, потому что каждый ApplicationBar в моем приложении имеет разные кнопки и наборы пунктов меню. Если вы имеете в виду то, что я могу поместить все наборы в один ресурсный файл - их будет несколько проще найти, но объем работы в случае, если я решу, например, изменить тип ресурса какого-либо свойства, быть меньше. Спасибо, что напомнили, что это не элемент управления Silverlight. Это все объясняет. - person Alec Mev; 26.11.2011
comment
Соглашусь, это будет довольно громоздко. Добавлен еще один вариант, который, в зависимости от вашей ситуации, может помочь. - person abhinav; 26.11.2011
comment
Что ж, это универсальное решение, однако моя ситуация не так экстремальна :) Мне просто было интересно, есть ли WPF-способ. Спасибо. - person Alec Mev; 26.11.2011