Pregunta

Estoy tratando de implementar un menú emergente personalizado para uno de mi botón de icono de la barra de aplicaciones (algo como el Teléfonoflipmenu Herramienta). Estoy usando un panel de pila vertical para eso:

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

Se muestra cuando el usuario presiona el botón de la barra de la aplicación:

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

Hay 2 problemas:

1) ¿Cómo puedo recuperar el color efectivo de la barra de aplicaciones para usarla en mi panel de pila? ApplicationBar.BackgroundColor devuelve # 00000000, pero obviamente el color efectivo del fondo de la barra de aplicaciones no es esto. Por ejemplo, es un gris oscuro cuando el tema del teléfono oscuro está encendido.

Si no podemos recuperar este color dinámicamente, tal vez, solo necesitamos los valores de color de código duro 2 para los temas oscuros y blancos. Entonces, la pregunta es cuáles son sus valores?

2) ¿Cómo usar el color recuperado en el paso anterior para que el panel de pila no sea transparente? Ahora veo el contenido principal debajo de él, incluso si especifico el cepillo de fondo explícitamente.

¿Fue útil?

Solución

Puede obtener el color de la barra de aplicaciones del recurso de la aplicación llamado "PhonechromeBrush". Por lo tanto, todo lo que necesita hacer es configurar el fondo del panel de pila en este cepillo.

    <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}" />

De esta manera, no tiene que preocuparse por el teléfono oscuro o el tema ligero.

Otros consejos

La barra de aplicaciones utiliza un color telefónico predeterminado según el tema.Entonces, en lugar de usar el color de la barra de aplicaciones ¿Por qué no usar el color del tema predeterminado?Eso también hará lo mismo. http://www.jeff.wilcox.name/2012/01/phonethemanager/ esto te ayudará.

para el tema oscuro El color es RGB (31, 31, 31). Para el tema ligero, el color es RGB (221,221,221).

Espero que esto haya ayudado. Saludos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top