IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Ombre tout autour d'une FORM WPF


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut Ombre tout autour d'une FORM WPF
    Bonjour à tous,

    Je voudrais une ombre tout autour de ma FORM ( et non juste en bas et à droite).

    J'utilise actuellement ceci :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <shadows:SystemDropShadowChrome CornerRadius="10" Color="#50000000" >
    </shadows:SystemDropShadowChrome>

    Mais l'ombre n'est qu'en bas et à droite. Je souhaiterai que cette ombre soit tout autour de ma FORM. Auriez vous une astuce ? Merci beaucoup

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Pas que je sache. SystemDropShadowChrome est optimisé, mais en contrepartie est assez rigide. Pour faire ce que tu veux, il y aurait moyen avec un rectangle un peut plus grand que ta form en dessous de celle-ci. Et appliquer un BlurEffect. Il y a peut-etre un meilleur moyen.

  3. #3
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour Nixeus
    comme l'as dit GuruuMeditation,le SystemDropShadowChrome est optimisé(utilise le Microsoft.Windows.Themes)
    Le DropShadowEffect simple-qui helas n'est pas optimise(il est bon juste pour un simple splash screen) peu te permettre de realiser l'ombrage sur les 4 cotes....
    voici un winform avec le SystemDropShadowChrome avec 2 ombres comme tu l'as decrit:
    code xaml:
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <Window x:Class="MainWindowWithAeroShadow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:aero="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
        WindowStyle="None" 
        WindowStartupLocation="CenterScreen"
        Background="Transparent"
        AllowsTransparency="True"
        Title="MainWindow WithAeroShadow" 
        Height="300" Width="300">
        <!--exemple msdn 1 using a SystemDropShadowChrome:-->
     
        <Window.Resources>
            <Color x:Key="ShadowColor">#887D955B</Color>
            <LinearGradientBrush x:Key="SplashBackgroundBrush" StartPoint="0,0" EndPoint="1,1">
                <LinearGradientBrush.GradientStops>
                    <GradientStop Offset="0.0" Color="#FFC6E798"/>
                    <GradientStop Offset="1.0" Color="#FFEBF7DB"/>
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </Window.Resources>
     
        <aero:SystemDropShadowChrome 
          Color="{StaticResource ShadowColor}" 
          CornerRadius="1"
          Margin="0,0,3,3">  
        <Grid 
            Background="{StaticResource SplashBackgroundBrush}" 
            Margin="0,0,3,3">
     
        </Grid>
        </aero:SystemDropShadowChrome>
    </Window>
    voici le meme rectangle avec le DropShadowEffect avec les 4 ombrages en donnant un fort blureffect comme l'as dit GuruuMeditation :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Window x:Class="MainWindowWithDropShadow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        WindowStyle="None" 
        WindowStartupLocation="CenterScreen"
        Background="Transparent"
        AllowsTransparency="True"
        Title="MainWindowWithDropShadow"
        Height="300" Width="300">
        <!--exemple msdn 2 using a BitmapEffect DropShadowChrome:-->
        <Window.Resources>
            <Color x:Key="ShadowColor">#887D955B</Color>
            <LinearGradientBrush x:Key="SplashBackgroundBrush" StartPoint="0,0" EndPoint="1,1">
                <LinearGradientBrush.GradientStops>
                    <GradientStop Offset="0.0" Color="#FFC6E798"/>
                    <GradientStop Offset="1.0" Color="#FFEBF7DB"/>
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </Window.Resources>
        <Window.Effect>
            <DropShadowEffect 
                ShadowDepth="3" 
                Color="{StaticResource ShadowColor}" 
                BlurRadius="25"
                 />
        </Window.Effect>
        <Grid 
            Background="{StaticResource SplashBackgroundBrush}" 
            Margin="15">
     
        </Grid>
    </Window>
    a toi de voir ce qu tu veux...................
    bon code..................

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Bonjour à vous deux et merci pour vos réponses.

    La première solution me convient bien sauf que ma form à des coins arrondis

    Voila ce que j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <Border CornerRadius="10" Background="#FFEAEBDD" >
    Sans cette ligne, l'ombre est très belle et c'est exactement ce que je cherche, mais avec la ligne ci dessus ( celle pour avoir les coins arrondis), je n'ai que l'ombre sur les coins, enfin c'est assez étrange à expliquer.

  5. #5
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour Nixeus
    Mais comme tu ne peux montre qu'une partie de ton code,je suis amene à penser que tu as neglige les marges de positionnement des elements (le dropshadow et le border)...sans oublier que les marges sans additives(la marge "reelle" de border dans cet exemple=sa marge+celle de dropshadow qui l'englobe soit 6).....
    Voici le role des marges:
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <Window x:Class="MainWindowWithAeroShadow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:aero="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
        WindowStyle="None" 
        WindowStartupLocation="CenterScreen"
        Background="Transparent"
        AllowsTransparency="True"
        Title="MainWindow WithAeroShadow" 
        Height="300" Width="300">
     
        <!--exemple msdn 1 using a SystemDropShadowChrome:-->
     
        <Window.Resources>
            <Color x:Key="ShadowColor">#887D955B</Color>
            <LinearGradientBrush x:Key="SplashBackgroundBrush" StartPoint="0,0" EndPoint="1,1">
                <LinearGradientBrush.GradientStops>
                    <GradientStop Offset="0.0" Color="#FFC6E798"/>
                    <GradientStop Offset="1.0" Color="#FFEBF7DB"/>
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </Window.Resources>
     
            <aero:SystemDropShadowChrome 
              Color="{StaticResource ShadowColor}" 
              CornerRadius="10"
              Margin="0,0,3,3">
     
            <Border 
                CornerRadius="10"
                Background="#FFEAEBDD"
                Margin="0,0,3,3">
            </Border>
        </aero:SystemDropShadowChrome>
     
    </Window>
    bon code...............

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Bonjour et merci de ta réponse,

    IL me faudrait donc augmenter les valeurs des marges ?

Discussions similaires

  1. [RAPHAEL] - Mettre un lien xlink autour d'une forme SVG
    Par samouille666 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 05/03/2015, 10h59
  2. Cadre autour d'une forme
    Par gicquairea dans le forum Débuter
    Réponses: 5
    Dernier message: 19/08/2007, 16h41
  3. Réponses: 3
    Dernier message: 03/03/2006, 11h40
  4. [VB.NET] Comment associer une Ombre à une Form?
    Par jazz matazz dans le forum Windows Forms
    Réponses: 6
    Dernier message: 28/02/2006, 14h00
  5. Ajustement d'une forme sur tout l'écran
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 21/06/2005, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo