0

アプリ バー アイコン ボタン ( PhoneFlipMenuツールなど) の 1 つにカスタム ポップアップ メニューを実装しようとしています。そのために垂直 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;
}

2 つの問題があります。

1) アプリケーション バーの有効な色を取得して、スタック パネルで使用するにはどうすればよいですか? ApplicationBar.BackgroundColor は #00000000 を返しますが、明らかにアプリ バーの背景の有効な色はこれではありません。たとえば、暗い電話のテーマがオンの場合は暗い灰色です。

この色を動的に取得できない場合は、おそらく、暗いテーマと白いテーマの 2 つの色の値をハード コードするだけで済みます。次に問題は、それらの値は何ですか?

2) 前のステップで取得した色を使用して、スタック パネルを非透明にする方法は? 背景ブラシを明示的に指定しても、その下にメイン コンテンツが表示されるようになりました。

4

2 に答える 2

1

アプリ バーは、テーマに応じてデフォルトの電話の色を使用します。では、アプリ バーの色を使用する代わりに、既定のテーマの色を使用してみませんか? それも同じことをします。http://www.jeff.wilcox.name/2012/01/phonethememanager/これが役に立ちます。

暗いテーマの場合、色は RGB (31, 31, 31) です。明るいテーマの場合、色は RGB (221,221,221) です。

これが役に立ったことを願っています。乾杯

于 2014-06-03T12:44:16.183 に答える
0

アプリケーション バーの色は、「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}" />

これにより、携帯電話の暗いテーマや明るいテーマについて心配する必要がなくなります。

于 2014-06-03T14:31:08.110 に答える