[英]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.