【问题标题】:Windows Phone 8 ApplicationBar expanded unchangable transparancyWindows Phone 8 应用栏扩展不变透明
【发布时间】:2013-08-08 10:46:10
【问题描述】:

以下代码...

<!--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 (展开时为纯色背景)

但是如果我像这样在 CodeBehind 中创建 AppBar...

 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...)

然后我得到了 misterios 不变的透明度......

http://s1.directupload.net/file/d/3341/zjo57e37_jpg.htm (展开后半透明)

如何将背景更改为纯色??? - 是的,我大部分都覆盖了主题 -更改全局颜色不起作用 - 改变背景/前景不起作用 - 改变不透明度不起作用...

我需要从后面的代码生成它,因为我在一个窗口中动态更改它 (或者是否可以在标记中定义多个 AppBar?)

提前致谢!

【问题讨论】:

    标签: windows-phone-8 transparent appbar


    【解决方案1】:

    请试试这个

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

    通过这种方式,你将在设计器页面中获得相同的颜色。

    这个(52,0,2,181)是#002B55的转化价值

    【讨论】:

    • 这就是我的 HelperClass 实际上所做的,抱歉我忘记为帖子更改它。我现在改了。所以问题依然存在...
    【解决方案2】:

    在一个新项目上,一切似乎都很好,在这里。

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

    使用您在 XAML 中提供的应用程序栏示例,但使用 Opacity=0.5,我明白了:

    点击“更改颜色”按钮后,ApplicationBar.Opacity = 1;,我得到了这个结果:

    (背景图片略微上移,因为在第一种情况下我们提供了不透明度,而在第二种情况下没有明确指定,并且似乎应用栏没有在图像上分层,但要解决此问题,您可以设置Opacity=0.999,接近 1)。

    这一定与您所做的所有主题覆盖或您尝试的某些自定义有关。

    如果这不是很有帮助,请提供更多详细信息,我会尽力提供帮助。

    【讨论】:

    • 非常感谢您的努力!这也没有帮助,但我现在找到了解决方案!我只是不创建应用程序栏的新对象并采用当前的“this.Applicationbar” :) 明天我将发布解决方案,因为我目前已锁定
    【解决方案3】:

    非常感谢您的努力,但将不透明度更改为 0.999 也无济于事。

    我找到了解决办法!!而且很简单:)

    我只是拿旧的吧,而不是创建一个新的:

    //Old Code
        ApplicationBar = new ApplicationBar();
    
    //New Code
        ApplicationBar.Buttons.Clear();
        ApplicationBar.MenuItems.Clear();
    

    希望对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 2015-11-13
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      相关资源
      最近更新 更多