簡體   English   中英

獲取WP8中應用欄的有效背景色

[英]Get the effective backcolor of app bar in WP8

我正在嘗試為我的應用程序欄圖標按鈕之一實現自定義彈出菜單(類似於PhoneFlipMenu工具)。 我為此使用了一個垂直的StackPanel:

<StackPanel x:Name="popupMenuListCommands" Grid.Row="1" 
            Orientation="Vertical" VerticalAlignment="Bottom" 
            Background="{StaticResource PhoneDisabledBrush}"
            Visibility="Collapsed">
    <TextBlock Text="menu item 1" Style="{StaticResource PopupMenuListCommand}" />
    <TextBlock Text="menu item 2" Style="{StaticResource PopupMenuListCommand}" />
</StackPanel>

當用戶按下應用程序欄按鈕時顯示:

void appBarIconButtonList_Click(object sender, EventArgs e)
{
    popupMenuListCommands.Visibility = Visibility.Visible;
    ApplicationBar.IsVisible = false;
}

有兩個問題:

1)如何獲取應用程序欄的有效顏色以在堆棧面板中使用它? ApplicationBar.BackgroundColor返回#00000000,但是顯然應用欄背景的有效顏色不是這個。 例如,當打開暗手機主題時,它為暗灰色。

如果我們不能動態地檢索這種顏色,也許,我們只需要為深色和白色主題硬編碼2個顏色值即可。 那么問題是它們的價值觀是什么?

2)如何使用在上一步中檢索到的顏色使堆棧面板不透明? 現在,即使我明確指定了背景畫筆,也可以看到其主要內容。

應用欄根據主題使用默認的電話顏色。 因此,為什么不使用應用程序欄顏色而不使用默認主題顏色? 那也將做同樣的事情。 http://www.jeff.wilcox.name/2012/01/phonethememanager/這將為您提供幫助。

對於深色主題,顏色為rgb(31,31,31)。 對於淺色主題,顏色為rgb(221,221,221)。

希望這會有所幫助。 干杯

您可以從名為“ PhoneChromeBrush”的應用程序資源中獲取應用程序欄顏色。 因此,您所需要做的就是將堆棧面板背景設置為此畫筆。

    <StackPanel x:Name="popupMenuListCommands" Grid.Row="1" 
        Orientation="Vertical" VerticalAlignment="Bottom" 
        Background="{StaticResource PhoneChromeBrush}"
        Visibility="Collapsed">
<TextBlock Text="menu item 1" Style="{StaticResource PopupMenuListCommand}" />
<TextBlock Text="menu item 2" Style="{StaticResource PopupMenuListCommand}" />

這樣,您不必擔心手機的黑暗或明亮主題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM