2015-02-19 6 views
1

У меня есть очень конкретный вопрос. Я не мог найти ответы на эту проблему, поэтому я использовал метод проб и ошибок, чтобы определить проблему. Вот пример кода у меня есть проблема с:Я не могу применить пользовательский стиль для AppBarButton внутри CommandBar в WP 8.1

<Page.BottomAppBar> 
    <CommandBar x:Name="MainMenuCommandBar" ClosedDisplayMode="Minimal"> 
     <CommandBar.PrimaryCommands> 
      <AppBarButton x:Name="otherCommandButton" Label="Egyéb" Icon="List" Click="otherCommandButton_Click" Style="{StaticResource appbarButton}"> 
       <AppBarButton.Flyout> 
        <MenuFlyout> 
         <MenuFlyoutItem x:Name="SecondaryFlyout1" Text="Névjegy" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
         <MenuFlyoutItem x:Name="SecondaryFlyout2" Text="Adatbázis mentés" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
         <MenuFlyoutItem x:Name="SecondaryFlyout3" Text="Adatbázis visszaállítás" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
         <MenuFlyoutItem x:Name="SecondaryFlyout4" Text="Terminál törlése" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
         <MenuFlyoutItem x:Name="SecondaryFlyout5" Text="Jelszavas védelem" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
         <MenuFlyoutItem x:Name="SecondaryFlyout6" Text="Nyelv váltás" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
         <MenuFlyoutItem x:Name="SecondaryFlyout7" Text="Betűméret" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
         <MenuFlyoutItem x:Name="SecondaryFlyout8" Text="Kilépés" Style="{StaticResource BottomAppBarFlyoutStyle}"/> 
        </MenuFlyout> 
       </AppBarButton.Flyout> 
      </AppBarButton> 
      <AppBarButton x:Name="refreshCommandButton" Label="Frissítés(Bank)" Icon="Refresh" Style="{StaticResource appbarButton}"/> 
      <AppBarButton x:Name="syncCommandButton" Label="Szinkronizál(PC)" Icon="Sync" Style="{StaticResource appbarButton}"/> 
     </CommandBar.PrimaryCommands> 
    </CommandBar> 
</Page.BottomAppBar> 

Я хотел применить пользовательский стиль для appbarbuttons внутри CommandBar, потому что текст в наклейках слишком долго, и я не могу увидеть весь текст. Поэтому я подумал: я уменьшу текст, или панель приложения будет шире. Дизайнер показал мне изменения, но когда я запускаю программу, ничего не меняется. Кнопки appbarbuttons используют стиль по умолчанию, независимо от того, что я делаю. Поэтому, когда я запускаю программу, текст не уменьшается.

После этого я попытался выявить проблему. Я также попытался изменить шаблон, но команда «отредактировать копию» выделена серым цветом. Я думал, что это странно, потому что я прошел через MSDN, и там я увидел, что на панели приложений есть стиль, который я мог бы редактировать. Я скопировал стиль по умолчанию, внес изменения, применил его в свой app.xaml как пользовательский стиль, но я столкнулся с той же проблемой, что и раньше. Ничего не изменилось, независимо от того, что я изменил в стиле. После всех этих сбоев, я установил appbarbutton OUTSIDE в командную строку. И в этом случае все работает нормально. Я могу редактировать копию шаблона, и изменения отражаются при запуске программы. Другим странным случаем является то, что menuflyoutitems можно стилизовать внутри командной строки.

Извините за длительные объяснения, я хотел представить то, что знаю. Короче говоря, есть ли способ подстроить панель управления внутри командной строки? Или, если нет, есть ли альтернатива созданию пользовательской командной строки?

ответ

5

CommandBar на Windows Phone является системным пользовательским интерфейсом и не может быть настроен приложением, кроме настройки его переднего плана и цветов фона.

Если вы хотите настроить отдельные кнопки, вам понадобится реализовать свою панель для них вместо использования панели приложений. Вы можете разместить горизонтальную стеквую панель в нижней части страницы и включить в нее настраиваемые AppBarButtons. Если вы хотите, чтобы он был на обуви и спрятан, вам нужно будет установить свою собственную логику для обнаружения входного сигнала запуска, а затем применить анимацию к ее открытию и закрытию.