Windows Phone 8 ApplicationBar расширен неизменной прозрачностью

Следующий код...

<!--Navigation-Bar-->
<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" ForegroundColor="White" IsMenuEnabled="True" BackgroundColor="#002B55">
        <shell:ApplicationBarIconButton Click="B_Search_Click" IconUri="Images\Pic_Search.png" Text="Search"/>
        <shell:ApplicationBarIconButton Click="B_Media_Click" IconUri="Images\Pic_Media.png" Text="Media"/>
        <shell:ApplicationBarIconButton Click="B_Scan_Click" IconUri="Images\Pic_Scan.png" Text="Scanner"/>
        <shell:ApplicationBarIconButton Click="B_Charts_Click" IconUri="Images\Pic_Charts.png" Text="Charts"/>
        <shell:ApplicationBar.MenuItems>
            <shell:ApplicationBarMenuItem Click="B_Logout_Click" Text="Logout"/>
        </shell:ApplicationBar.MenuItems>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

дает мне следующий ApplicationBar...

http://s14.directupload.net/file/d/3341/4xiadbvz_jpg.htm(сплошной фон при расширении)

НО, если я создаю AppBar в CodeBehind, как это...

 private void ResetApplicationBar()
        {
            ApplicationBar = new ApplicationBar();
            ApplicationBar.BackgroundColor = Color.FromArgb(150, 0, 43, 85);;
            ApplicationBar.ForegroundColor = Colors.White;
            ApplicationBar.Opacity = 1;

            ApplicationBarIconButton B_Search = new ApplicationBarIconButton();
            B_Search.IconUri = new Uri("/Images/Pic_Search.png", UriKind.Relative);
            B_Search.Text = "search";
            ApplicationBar.Buttons.Add(B_Search);
            B_Search.Click += new EventHandler(B_Search_Click);

            (more Buttons...)

тогда я получаю эту мистерию неизменной прозрачности...

http://s1.directupload.net/file/d/3341/zjo57e37_jpg.htm(полупрозрачный при расширении)

Как я могу изменить фон на сплошной??? - Да, я в основном перезаписал тему - Изменение глобальных цветов не работает - изменение фона / переднего плана не работает - изменение непрозрачности не работает...

Мне нужно сгенерировать его из кода, потому что я изменяю его динамически в одном окне (или можно определить несколько AppBars в разметке?)

Заранее спасибо!

3 ответа

Решение

Большое спасибо за усилия, но изменение непрозрачности до 0,999 тоже не помогло.

Я нашел решение!! И это довольно просто:)

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

//Old Code
    ApplicationBar = new ApplicationBar();

//New Code
    ApplicationBar.Buttons.Clear();
    ApplicationBar.MenuItems.Clear();

Надеюсь, это поможет кому-то!

Примерьте вот это

ApplicationBar.BackgroundColor = Color.FromArgb(52,0,2,181);
ApplicationBar.ForegroundColor = Colors.White;

Таким образом, вы получите тот же цвет на странице дизайнера.

Это (52,0,2,181) значение конверсии #002B55

На свежем проекте все вроде нормально, здесь.

"- changing background/foreground doesnt work 
 - changing opacity doesnt work..."

Используя образец панели приложения, вы предоставили в XAML, но с Opacity=0.5Я получаю это:

ваш XAML AppBar, но с Opac

После того, как я нажимаю кнопку "Изменить цвет", которая делает ApplicationBar.Opacity = 1;Я получаю этот результат:

(Фоновое изображение немного смещено вверх, потому что в первом случае мы предоставили прозрачность, а во втором не было явно указано ни одного, и кажется, что панель приложения не наслоена на изображение, но чтобы это исправить, вы можете установить Opacity=0.999близко к 1).

Он должен иметь отношение к перезаписи всей темы или к какой-либо настройке, которую вы пытались выполнить.

Если это не очень полезно, предоставьте мне больше деталей, и я постараюсь помочь, насколько смогу.

Другие вопросы по тегам