Im luchando con sombra en WPF-windows con WindowStyle=Ninguno y ResizeMode=NoResize. Hay alguna buena alternativa al uso de una Sombra-el efecto en la ventana de contenido? He intentado WindowChrome en la Integración de la Cáscara de la Biblioteca, pero no su muestra de «Chrome» cuando ResizeMode=NoResize.

Si era posible de alguna manera para dibujar una wpf-sombra paralela fuera de mi ventana fronteras podría ser una solución. Si Im dibujo de la sombra dentro de la ventana puedo obtener un comportamiento diferente, a continuación, estándar cuando por ejemplo el movimiento del ratón-cursor sobre la sombra. No debe haber ningún golpe de pruebas en mi ventana al hacer esto y al hacer clic en esta área debe activar la ventana detrás de etc.

Zune parecen estar llegando a su propia sombra, porque no es exactamente como el estándar de Cromo-sombra. Pero su comporta como una normal sombra de esa manera no es la captura de eventos de ratón. Me pregunto cómo lo hacen.

Spotify también tiene otro tipo de sombra que no es también la captura de eventos de ratón.

Supongo que estas apps sacar sus propias WindowChrome completamente, pero ¿cómo? Es esto apoyado en WPF de alguna manera?

<Window x:Class="ShellIntegrationTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Microsoft.Windows.Shell"
        Title="MainWindow" Height="512" Width="384" WindowStyle="None" ResizeMode="NoResize">
  <shell:WindowChrome.WindowChrome>
    <shell:WindowChrome ResizeBorderThickness="5" GlassFrameThickness="-1" CornerRadius="0" CaptionHeight="25" />
  </shell:WindowChrome.WindowChrome>
</Window>
  • Por favor, muéstranos tu xaml para que podamos ver lo que usted está tratando de lograr.
InformationsquelleAutor Andreas Zita | 2011-05-11

2 Comentarios

  1. 1

    Este código funcionará en los bordes de la ventana para mostrar la sombra si la ventana está configurado para no cambiar el tamaño y el estilo de ninguno.

        xmlns:local="clr-namespace:BorderTest" 
        mc:Ignorable="d" WindowStyle="None" ResizeMode="NoResize"
       Title="MainWindow" Height="350" Width="525" AllowsTransparency="True" Background="Transparent">
    <Border Margin="10" BorderThickness="1" BorderBrush="Blue">
        <Border.Effect>
            <DropShadowEffect Color="Black"
                              Direction="270"
                              BlurRadius="10"
                              ShadowDepth="3" />
        </Border.Effect>
        <Grid Background="White">
    
        </Grid>
    </Border>

  2. -1

    Si cambia ResizeMode a CanResize y establecer el ResizeBorderThickness a 0, obtendrá una ventana sin bordes, que no se puede cambiar el tamaño y la sombra se puede hacer clic a través de la ventana activa.

Dejar respuesta

Please enter your comment!
Please enter your name here