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 :

Probleme de style: contextmenu


Sujet :

Windows Presentation Foundation

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Probleme de style: contextmenu
    Bonjour,

    J'ai créer un style pour les contextmenu de mon application, il fonctionne très bien de manière générale sauf lorsque que je rentre en mode édition, exemple une datagrid en mode lecture j'ai mon style:
    Nom : datagri_read.jpg
Affichages : 333
Taille : 8,5 Ko

    Par contre dés que la datagrid est en mode édition, j'ai un style "bizarre" avec les commandes par défaut copier, couper et coller (je précise que je n'ai pas créer ce contexmenu, je pense que c'est celui par défaut)
    Nom : datagri_edit.jpg
Affichages : 316
Taille : 8,9 Ko

    Ma question est la suivante comment appliquer mon style lorsque l'on est en mode édition pour une datagrid et autres contrôles (textbox, combobox,etc..)?

    Ci-Joint le code de mon style qui est référencé dans le ResourceDictionnary du fichier App.xaml, par contre je n'ai pas joint les Brushes.

    Code : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    <ResourceDictionary
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
     
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Common.Styles;component/Brushes.xaml" />
        </ResourceDictionary.MergedDictionaries>
     
        <!-- SimpleStyles: ContextMenu -->
        <Style TargetType="{x:Type ContextMenu}">
            <Setter Property="SnapsToDevicePixels" Value="True" />
            <Setter Property="OverridesDefaultStyle" Value="True" />
            <Setter Property="Grid.IsSharedSizeScope" Value="true" />
            <Setter Property="HasDropShadow" Value="True" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ContextMenu}">
                        <Border Name="Border"
                                Background="{StaticResource WindowBackgroundBrush}"
                                BorderBrush="{StaticResource SolidBorderBrush}"
                                BorderThickness="1">
                            <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="HasDropShadow" Value="true">
                                <Setter TargetName="Border" Property="Padding" Value="0,3,0,3" />
                                <Setter TargetName="Border" Property="CornerRadius" Value="4" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
     
        <MenuScrollingVisibilityConverter x:Key="MenuScrollingVisibilityConverter" />
        <Geometry x:Key="DownArrow">M 0,0 L 3.5,4 L 7,0 Z</Geometry>
        <Geometry x:Key="UpArrow">M 0,4 L 3.5,0 L 7,4 Z</Geometry>
        <Geometry x:Key="RightArrow">M 0,0 L 4,3.5 L 0,7 Z</Geometry>
     
        <Style x:Key="MenuScrollButton"
               TargetType="{x:Type RepeatButton}"
               BasedOn="{x:Null}">
            <Setter Property="ClickMode" Value="Hover" />
            <Setter Property="MinWidth" Value="0" />
            <Setter Property="MinHeight" Value="0" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type RepeatButton}">
                        <DockPanel Background="Transparent"
                         SnapsToDevicePixels="true">
                            <!--right -->
                            <Rectangle DockPanel.Dock="Right" x:Name="R1" Width="1" Fill="Transparent" />
                            <!--bottom-->
                            <Rectangle DockPanel.Dock="Bottom" x:Name="B1" Height="1" Fill="Transparent" />
                            <!--left  -->
                            <Rectangle DockPanel.Dock="Left" x:Name="L1" Width="1" Fill="Transparent" />
                            <!--top   -->
                            <Rectangle DockPanel.Dock="Top" x:Name="T1" Height="1" Fill="Transparent" />
                            <ContentPresenter x:Name="ContentContainer" Margin="2,2,2,2" VerticalAlignment="Center" HorizontalAlignment="Center" />
                        </DockPanel>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsPressed" Value="true">
                                <Setter TargetName="R1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlLightLightBrushKey}}" />
                                <Setter TargetName="B1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlLightLightBrushKey}}" />
                                <Setter TargetName="L1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" />
                                <Setter TargetName="T1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" />
                                <Setter TargetName="ContentContainer" Property="Margin" Value="3,3,1,1" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
     
        <Style x:Key="MenuScrollViewer" TargetType="{x:Type ScrollViewer}" BasedOn="{x:Null}">
            <Setter Property="HorizontalScrollBarVisibility" Value="Hidden" />
            <Setter Property="VerticalScrollBarVisibility" Value="Auto" />
            <Setter Property="Template">
                <Setter.Value>
                    <!--ScrollViewer for a MenuItem-->
                    <ControlTemplate TargetType="{x:Type ScrollViewer}">
                        <Grid SnapsToDevicePixels="True">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="*" />
                                <RowDefinition Height="Auto" />
                            </Grid.RowDefinitions>
                            <Border Grid.Row="1" Grid.Column="0">
                                <ScrollContentPresenter Margin="{TemplateBinding Padding}" />
                            </Border>
                            <RepeatButton Style="{StaticResource MenuScrollButton}"
                                          Grid.Row="0"
                                          Grid.Column="0"
                                          Command="{x:Static ScrollBar.LineUpCommand}"
                                          CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                                          Focusable="False">
                                <RepeatButton.Visibility>
                                    <MultiBinding FallbackValue="Visibility.Collapsed"
                                                  Converter="{StaticResource MenuScrollingVisibilityConverter}"
                                                  ConverterParameter="0">
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="ComputedVerticalScrollBarVisibility" />
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="VerticalOffset" />
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="ExtentHeight" />
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="ViewportHeight" />
                                    </MultiBinding>
                                </RepeatButton.Visibility>
                                <Path Fill="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}" Data="{StaticResource UpArrow}" />
                            </RepeatButton>
                            <RepeatButton Style="{StaticResource MenuScrollButton}"
                                          Grid.Row="2"
                                          Grid.Column="0"
                                          Command="{x:Static ScrollBar.LineDownCommand}"
                                          CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                                          Focusable="False">
                                <RepeatButton.Visibility>
                                    <MultiBinding FallbackValue="Visibility.Collapsed"
                                                  Converter="{StaticResource MenuScrollingVisibilityConverter}"
                                                  ConverterParameter="100">
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ComputedVerticalScrollBarVisibility" />
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="VerticalOffset" />
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ExtentHeight" />
                                        <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ViewportHeight" />
                                    </MultiBinding>
                                </RepeatButton.Visibility>
                                <Path Fill="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}" Data="{StaticResource DownArrow}" />
                            </RepeatButton>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ResourceDictionary>
    Je vous remercie pour votre aide.


  2. #2
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 95
    Points : 131
    Points
    131
    Par défaut
    Quand tu passes en mode édition, l'arbre visuel de la cellule contient un TextBox. L'évènement click droit remonte l'arbre visuel jusqu'à ce qu'un contrôle s'en charge. Ici, la textbox. Ta ligne ou cellule, lorsqu'elle récupère l'évènement du click le voit marqué comme Handled et ne le gère donc pas.

    Il y a plusieurs façons de faire. L'une d'elle est d'ajouter un Handler pour ouvrir le ContextMenu en spécifiant que tu veux qu'il soit exécuté même si l'évènement a été marqué comme Handled par un autre élément de l'arbre visuel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddHandler(FrameworkElement.MouseDownEvent, new MouseButtonEventHandler(Button_MouseDown), true);
    Les évènements ont deux manière de fonctionné. Bubble ou Tunnel. Bubble laisse remonter l'évènement depuis le bas de l'arbre visuel vers le haut. Tunnel laisse descendre l'évènement depuis le haut vers le bas. Tu pourrais donc aussi ajouter un handler à un évènement de click qui est fonctionne de la seconde manière. Ces évènements sont en général précédé du mot Preview (PreviewMouseDown ...).

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Deesmon Voir le message
    Quand tu passes en mode édition, l'arbre visuel de la cellule contient un TextBox. L'évènement click droit remonte l'arbre visuel jusqu'à ce qu'un contrôle s'en charge. Ici, la textbox. Ta ligne ou cellule, lorsqu'elle récupère l'évènement du click le voit marqué comme Handled et ne le gère donc pas.

    Il y a plusieurs façons de faire. L'une d'elle est d'ajouter un Handler pour ouvrir le ContextMenu en spécifiant que tu veux qu'il soit exécuté même si l'évènement a été marqué comme Handled par un autre élément de l'arbre visuel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AddHandler(FrameworkElement.MouseDownEvent, new MouseButtonEventHandler(Button_MouseDown), true);
    Les évènements ont deux manière de fonctionné. Bubble ou Tunnel. Bubble laisse remonter l'évènement depuis le bas de l'arbre visuel vers le haut. Tunnel laisse descendre l'évènement depuis le haut vers le bas. Tu pourrais donc aussi ajouter un handler à un évènement de click qui est fonctionne de la seconde manière. Ces évènements sont en général précédé du mot Preview (PreviewMouseDown ...).
    Merci pour ta réponse et de t’intéresser mon problème

    Je n'ai pas encore essayer au moment ou je t'écris ces lignes, mais la solution me semble une bonne idée et du coup je gère mon propre contextmenu, c'est bien ça? j'essayerai ce soir... mais il y a une chose qui me vient à l'esprit, la manière dont j'ai créé le style et en déclarant dans le App.xaml, ne devait il pas s'appliquer à tous les contextmenu de mon application? normalement je dirais que oui... a moins que j'ai pas saisie un concept WPF/XAML. Merci de me corriger si ma connaissance est erronée.


  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    La solution de Deesmon est une solution mais cela m'oblige à ré-écrire la roue, j'envisagerai sa solution si je n'ai pas de réponse à mes questions (cf: mes anciens messages).

    Je vous joint une autre partie dans de mon code pour définir le contextmenu, en espérant avoir des réponses.

    Code : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
     
    <ResourceDictionary
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
     
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Common.Styles;component/Brushes.xaml" />
            <ResourceDictionary Source="/Common.Styles;component/Control/ContextMenu.xaml" />
        </ResourceDictionary.MergedDictionaries>
     
        <!-- SimpleStyles: MenuItem -->
        <Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="{x:Type Separator}">
            <Setter Property="Height" Value="1" />
            <Setter Property="Margin" Value="0,4,0,4" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Separator}">
                        <Border BorderBrush="{StaticResource SolidBorderBrush}" BorderThickness="1" />
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
     
        <!-- TopLevelHeader -->
        <ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}" TargetType="{x:Type MenuItem}">
            <Border Name="Border">
                <Grid>
                    <ContentPresenter Margin="6,3,6,3"
                                      ContentSource="Header"
                                      RecognizesAccessKey="True" />
                    <Popup Name="Popup"
                           Placement="Bottom"
                           IsOpen="{TemplateBinding IsSubmenuOpen}"
                           AllowsTransparency="True"
                           Focusable="False"
                           PopupAnimation="Fade">
                        <Border Name="SubmenuBorder"
                                SnapsToDevicePixels="True"
                                Background="{StaticResource WindowBackgroundBrush}"
                                BorderBrush="{StaticResource SolidBorderBrush}"
                                BorderThickness="1">
                            <ScrollViewer CanContentScroll="True" Style="{StaticResource MenuScrollViewer}">
                                <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
                            </ScrollViewer>
                        </Border>
                    </Popup>
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsSuspendingPopupAnimation" Value="true">
                    <Setter TargetName="Popup" Property="PopupAnimation" Value="None" />
                </Trigger>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background" Value="{StaticResource NormalBrush}" />
                    <Setter TargetName="Border" Property="BorderBrush" Value="Transparent" />
                </Trigger>
                <!--Snippettoplevelheader-->
                <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
                    <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="0,0,4,4" />
                    <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,0,0,3" />
                </Trigger>
                <!--/Snippettoplevelheader-->
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
                    <Setter Property="Opacity" Value="0.5" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
     
        <!-- TopLevelItem -->
        <ControlTemplate x:Key="{x:Static MenuItem.TopLevelItemTemplateKey}" TargetType="{x:Type MenuItem}">
            <Border Name="Border">
                <Grid>
                    <ContentPresenter Margin="6,3,6,3"
                                      ContentSource="Header"
                                      RecognizesAccessKey="True" />
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background" Value="{StaticResource NormalBrush}" />
                    <Setter TargetName="Border" Property="BorderBrush" Value="Transparent" />
                </Trigger>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
                    <Setter Property="Opacity" Value="0.5" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
     
        <!-- SubmenuItem -->
        <ControlTemplate x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" TargetType="{x:Type MenuItem}">
            <Border Name="Border">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Icon" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut" />
                        <ColumnDefinition Width="13" />
                    </Grid.ColumnDefinitions>
                    <ContentPresenter Name="Icon"
                                      Margin="6,0,6,0"
                                      VerticalAlignment="Center"
                                      ContentSource="Icon" />
                    <Border Name="Check"
                            Width="13"
                            Height="13"
                            Visibility="Collapsed"
                            Margin="6,0,6,0"
                            Background="{StaticResource NormalBrush}"
                            BorderThickness="1"
                            BorderBrush="{StaticResource NormalBorderBrush}">
                        <Path Name="CheckMark"
                              Width="7"
                              Height="7"
                              Visibility="Hidden"
                              SnapsToDevicePixels="False"
                              Stroke="{StaticResource GlyphBrush}"
                              StrokeThickness="2"
                              Data="M 0 0 L 7 7 M 0 7 L 7 0" />
                    </Border>
                    <ContentPresenter Name="HeaderHost"
                                      Grid.Column="1"
                                      ContentSource="Header"
                                      RecognizesAccessKey="True" />
                    <TextBlock x:Name="InputGestureText"
                               Grid.Column="2"
                               Text="{TemplateBinding InputGestureText}"
                               Margin="5,2,0,2"
                               DockPanel.Dock="Right" />
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="Icon" Value="{x:Null}">
                    <Setter TargetName="Icon" Property="Visibility" Value="Hidden" />
                </Trigger>
                <Trigger Property="IsChecked" Value="true">
                    <Setter TargetName="CheckMark" Property="Visibility" Value="Visible" />
                </Trigger>
                <Trigger Property="IsCheckable" Value="true">
                    <Setter TargetName="Check" Property="Visibility" Value="Visible" />
                    <Setter TargetName="Icon" Property="Visibility" Value="Hidden" />
                </Trigger>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}" />
                </Trigger>
                <Trigger Property="IsEnabled" Value="false">
                    <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
                    <Setter Property="Opacity" Value="0.5" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
     
        <!-- SubmenuHeader -->
        <ControlTemplate x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}" TargetType="{x:Type MenuItem}">
            <Border Name="Border">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Icon" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut" />
                        <ColumnDefinition Width="13" />
                    </Grid.ColumnDefinitions>
                    <ContentPresenter Name="Icon"
                                      Margin="6,0,6,0"
                                      VerticalAlignment="Center"
                                      ContentSource="Icon" />
                    <ContentPresenter Name="HeaderHost"
                                      Grid.Column="1"
                                      ContentSource="Header"
                                      RecognizesAccessKey="True" />
                    <TextBlock x:Name="InputGestureText"
                               Grid.Column="2"
                               Text="{TemplateBinding InputGestureText}"
                               Margin="5,2,2,2"
                               DockPanel.Dock="Right" />
                    <Path Grid.Column="3"
                          HorizontalAlignment="Center"
                          VerticalAlignment="Center"
                          Data="M 0 0 L 0 7 L 4 3.5 Z"
                          Fill="{StaticResource GlyphBrush}" />
                    <Popup Name="Popup"
                           Placement="Right"
                           HorizontalOffset="-4"
                           IsOpen="{TemplateBinding IsSubmenuOpen}"
                           AllowsTransparency="True"
                           Focusable="False"
                           PopupAnimation="Fade">
                        <Border
                            Name="SubmenuBorder"
                            SnapsToDevicePixels="True"
                            Background="{StaticResource WindowBackgroundBrush}"
                            BorderBrush="{StaticResource SolidBorderBrush}"
                            BorderThickness="1">
                            <ScrollViewer CanContentScroll="True"
                                          Style="{StaticResource MenuScrollViewer}">
                                <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
                            </ScrollViewer>
                        </Border>
                    </Popup>
                </Grid>
            </Border>
     
            <ControlTemplate.Triggers>
                <Trigger Property="Icon" Value="{x:Null}">
                    <Setter TargetName="Icon" Property="Visibility" Value="Collapsed" />
                </Trigger>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}" />
                </Trigger>
                <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
                    <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="4" />
                    <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,3,0,3" />
                </Trigger>
                <Trigger Property="IsEnabled" Value="false">
                    <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
                    <Setter Property="Opacity" Value="0.5" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
     
        <!-- MenuItem Style -->
     
        <Style x:Key="{x:Type MenuItem}" TargetType="{x:Type MenuItem}">
            <Setter Property="OverridesDefaultStyle" Value="True" />
            <Style.Triggers>
                <Trigger Property="Role" Value="TopLevelHeader">
                    <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.TopLevelHeaderTemplateKey}}" />
                    <Setter Property="Grid.IsSharedSizeScope" Value="true" />
                </Trigger>
                <Trigger Property="Role" Value="TopLevelItem">
                    <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.TopLevelItemTemplateKey}}" />
                </Trigger>
                <Trigger Property="Role" Value="SubmenuHeader">
                    <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}" />
                </Trigger>
                <Trigger Property="Role" Value="SubmenuItem">
                    <Setter Property="Template" Value="{StaticResource {x:Static MenuItem.SubmenuItemTemplateKey}}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ResourceDictionary>
    Encore merci à Deesmon et aussi aux autres membres qui s'intéresse à mon problèmes.



    Complément d'information:
    J'ai créer un style pour une textbox avec un contextmenu personnalisé, il reprend bien le style mais pas dans ma datagridcolumn, ni dans une comboxbox... ci joint le code du style de la textbox. Je pense que je fais fausse route mais je vois pas où...

    Pourtant chez Microsoft... c'est plutôt clair
    Pour créer une colonne, ajoutez-la à la collection Columns. Pour remplir la colonne, liez la colonne aux données à l'aide de la propriété Binding. La propriété Binding est appliquée à l'élément TextBlock ou TextBox créé dans la colonne. Le DataContext pour l'élément dans chaque cellule est l'élément de données pour la ligne dans laquelle la cellule se trouve. Par conséquent, pour configurer la liaison, vous devez uniquement définir Binding.Path. Éventuellement, vous pouvez spécifier un Binding.Converter si vous souhaitez convertir les données ou le StringFormat. Pour plus d'informations sur la liaison de données, consultez Liaison de données (WPF).

    Remarque DataGridTextColumn crée un élément TextBlock en mode non-modification et un élément TextBox en mode modification.
    https://msdn.microsoft.com/fr-fr/lib...vs.110%29.aspx

    Code : 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
     
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Common.Styles;component/Brushes.xaml" />
        </ResourceDictionary.MergedDictionaries>
     
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="SnapsToDevicePixels" Value="True"/>
            <Setter Property="ContextMenu">
                <Setter.Value>
                    <ContextMenu>
                        <MenuItem Header="Test 1" Command="Cut"/>
                        <MenuItem Header="Test 2" Command="Copy"/>
                        <MenuItem Header="Test 3" Command="Paste"/>
                    </ContextMenu>
                </Setter.Value>
            </Setter>
            <Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
        </Style>
    </ResourceDictionary>

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 95
    Points : 131
    Points
    131
    Par défaut
    Tu veux juste que le style du menu contextuel de la textbox (copy cut paste) soit le même ou tu veux que lorsque tu fasses un clique droit sur la textbox, le menu contextuel de la ligne apparaisse ?

    Quand tu écris un style dans le dictionnaire de ressource de l'application. Sa clé par défaut est le type que le style cible. Si un contrôle applique un style avec une autre clé, il faut que dans ton dictionnaire de ressource tu ajoutes un style avec cette même clé. Comme tu l'as fais dans ton xaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    x:Key="{x:Static MenuItem.TopLevelItemTemplateKey}"
    x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}"
    Tu peux toujours essayé de chercher si dans le style par défaut pour l'édition d'une cellule d'une colonne de texte il y a pas une clé spécifique que tu pourrais utiliser pour surcharger le style. Sinon je pense que tu auras pas le choix que de redéfinir le template pour l'édition d'une cellule à la main.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je te prie de m'excuser, j'ai donner beaucoup de blabla et ce n'est peut être pas très clair

    Mais oui, ce n'est qu'une question de style, je suis entrain de créer un thème pour l'application.

    Ma question est la suivante comment appliquer mon style lorsque l'on est en mode édition pour une datagrid et autres contrôles (textbox, combobox,etc..)?
    Je pensais avoir définit au niveau des styles, tous les contrôles nécessaires pour pour un contextmenu (contextmenu + itemmenu) et j'ai effectivement chercher la clé... mais je fais l'impasse, je vois vraiment pas ce que cela peut être

    De plus ce qui me fait dire que tu as raison c'est que lorsque mon style contextmenu est "activé", j'ai ça

    Nom : datagri_edit.jpg
Affichages : 304
Taille : 8,9 Ko

    Et lorsque je "désactive" mon style, j'ai ceci (le style par défaut de Microsoft)

    Nom : datagri_edit_default.jpg
Affichages : 309
Taille : 5,3 Ko

    Donc il y a bien un partie de mon style qui lui est appliqué... c'est un truc de fou

    J'ai effectivement pensé a redéfinir le contextmenu édition pour tous mes contrôles... pff voila le boulot en plus, de plus j'ai pas touvé comment faire pour la grille... j'ai travaillé au niveau de la DatagridCell, si tu peux me filer encore un conseil

    Je te remercie pour ton coup de main

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 95
    Points : 131
    Points
    131
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
                    <DataGridTextColumn Binding="{Binding Path=., Mode=TwoWay}" Header="String">
                        <DataGridTextColumn.EditingElementStyle>
                            <Style TargetType="TextBox">
                                <Setter Property="ContextMenu">
                                    <Setter.Value>
                                        <ContextMenu>
                                            <MenuItem Header="Copy" Command="Copy" />
                                            <MenuItem Header="Cut" Command="Cut" />
                                            <MenuItem Header="Paste" Command="Paste" />
                                        </ContextMenu>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </DataGridTextColumn.EditingElementStyle>
                    </DataGridTextColumn>
    Pour les colonnes générées automatiquement, il y a un évènement auquel tu peux t'abonner sur la DataGrid. Dedans tu devrais pouvoir tester sur la column si elle est de type DataGridTextColumn et si c'est le cas, setter la propriété EditingElementStyle avec le style qu'il faut.

    Edit : Ou tu peux faire la même chose en t'abonnant à DataGrid.Columns.CollectionChanged pour unifier les deux cas.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ok!! parfait, nickel merci pour tout Deesmon je vais suivre ta piste, bien que cela soit un petit plus long mais c'est une solution qui répond à mon problème.

    Je vais laisser encore un peu la discussion en non résolu pour voir, si il y a d'autres membres qui auraient une autre solution, si j'ai pas de nouvelle solution début semaine prochaine, je clôture en résolu.

    Merci pour ton temps et ton aide, j’espère pourvoir à mon tour t'aider.


  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je n'ai pas réussi à trouver les clés pour remplacer dans le contextmenu édition, par contre la solution de Deesmon fonctionne très bien

    Je trouve dommage que l'on soit obligé de faire tout ça alors que c'est aussi un contextmenu... Microsoft

  10. #10
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour
    Mettre contextmenu dans les resources du Window ....
    L'affecter à la prop contextmenu du DGV (il interesse dans ce ca le dgvRrow)
    Restyler le DatagridCell du DGV
    Utiliser un Trigger sur sa prop IsEditing modifier le template du DataGridCell comme TextBox et lui affecter
    - le content de DatagridCell
    - notre contextmenu ....
    code xaml de App.xaml :
    Code : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    <Application x:Class="WpfContextMenuDGV.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 StartupUri="MainWindow.xaml">
        <Application.Resources>
     
                <!-- SimpleStyles: ContextMenu -->
                <Style  TargetType="{x:Type ContextMenu}">
                    <Setter Property="SnapsToDevicePixels" Value="True" />
                    <Setter Property="OverridesDefaultStyle" Value="True" />
                    <Setter Property="Grid.IsSharedSizeScope" Value="true" />
                    <Setter Property="HasDropShadow" Value="True" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type ContextMenu}">
                                <Border Name="Border"
                                Background="YellowGreen"
                                BorderBrush="RoyalBlue"
                                BorderThickness="1">
                                    <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="HasDropShadow" Value="true">
                                        <Setter TargetName="Border" Property="Padding" Value="0,3,0,3" />
                                        <Setter TargetName="Border" Property="CornerRadius" Value="4" />
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
     
                <MenuScrollingVisibilityConverter x:Key="MenuScrollingVisibilityConverter" />
                <Geometry x:Key="DownArrow">M 0,0 L 3.5,4 L 7,0 Z</Geometry>
                <Geometry x:Key="UpArrow">M 0,4 L 3.5,0 L 7,4 Z</Geometry>
                <Geometry x:Key="RightArrow">M 0,0 L 4,3.5 L 0,7 Z</Geometry>
     
                <Style x:Key="MenuScrollButton"
               TargetType="{x:Type RepeatButton}"
               BasedOn="{x:Null}">
                    <Setter Property="ClickMode" Value="Hover" />
                    <Setter Property="MinWidth" Value="0" />
                    <Setter Property="MinHeight" Value="0" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type RepeatButton}">
                                <DockPanel Background="Transparent"
                         SnapsToDevicePixels="true">
                                    <!--right -->
                                    <Rectangle DockPanel.Dock="Right" x:Name="R1" Width="1" Fill="Transparent" />
                                    <!--bottom-->
                                    <Rectangle DockPanel.Dock="Bottom" x:Name="B1" Height="1" Fill="Transparent" />
                                    <!--left  -->
                                    <Rectangle DockPanel.Dock="Left" x:Name="L1" Width="1" Fill="Transparent" />
                                    <!--top   -->
                                    <Rectangle DockPanel.Dock="Top" x:Name="T1" Height="1" Fill="Transparent" />
                                    <ContentPresenter x:Name="ContentContainer" Margin="2,2,2,2" VerticalAlignment="Center" HorizontalAlignment="Center" />
                                </DockPanel>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsPressed" Value="true">
                                        <Setter TargetName="R1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlLightLightBrushKey}}" />
                                        <Setter TargetName="B1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlLightLightBrushKey}}" />
                                        <Setter TargetName="L1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" />
                                        <Setter TargetName="T1" Property="Fill" Value="{DynamicResource {x:Static SystemColors.ControlDarkDarkBrushKey}}" />
                                        <Setter TargetName="ContentContainer" Property="Margin" Value="3,3,1,1" />
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
     
                <Style x:Key="MenuScrollViewer" TargetType="{x:Type ScrollViewer}" BasedOn="{x:Null}">
                    <Setter Property="HorizontalScrollBarVisibility" Value="Hidden" />
                    <Setter Property="VerticalScrollBarVisibility" Value="Auto" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <!--ScrollViewer for a MenuItem-->
                            <ControlTemplate TargetType="{x:Type ScrollViewer}">
                                <Grid SnapsToDevicePixels="True">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="*" />
                                        <RowDefinition Height="Auto" />
                                    </Grid.RowDefinitions>
                                    <Border Grid.Row="1" Grid.Column="0">
                                        <ScrollContentPresenter Margin="{TemplateBinding Padding}" />
                                    </Border>
                                    <RepeatButton Style="{StaticResource MenuScrollButton}"
                                          Grid.Row="0"
                                          Grid.Column="0"
                                          Command="{x:Static ScrollBar.LineUpCommand}"
                                          CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                                          Focusable="False">
                                        <RepeatButton.Visibility>
                                            <MultiBinding FallbackValue="Visibility.Collapsed"
                                                  Converter="{StaticResource MenuScrollingVisibilityConverter}"
                                                  ConverterParameter="0">
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="ComputedVerticalScrollBarVisibility" />
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="VerticalOffset" />
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="ExtentHeight" />
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}"
                                                 Path="ViewportHeight" />
                                            </MultiBinding>
                                        </RepeatButton.Visibility>
                                        <Path Fill="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}" Data="{StaticResource UpArrow}" />
                                    </RepeatButton>
                                    <RepeatButton Style="{StaticResource MenuScrollButton}"
                                          Grid.Row="2"
                                          Grid.Column="0"
                                          Command="{x:Static ScrollBar.LineDownCommand}"
                                          CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                                          Focusable="False">
                                        <RepeatButton.Visibility>
                                            <MultiBinding FallbackValue="Visibility.Collapsed"
                                                  Converter="{StaticResource MenuScrollingVisibilityConverter}"
                                                  ConverterParameter="100">
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ComputedVerticalScrollBarVisibility" />
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="VerticalOffset" />
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ExtentHeight" />
                                                <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="ViewportHeight" />
                                            </MultiBinding>
                                        </RepeatButton.Visibility>
                                        <Path Fill="{DynamicResource {x:Static SystemColors.MenuTextBrushKey}}" Data="{StaticResource DownArrow}" />
                                    </RepeatButton>
                                </Grid>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
     
        </Application.Resources>
    </Application>
    code xaml de App.xaml :
    Code : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
     
    <Window x:Class="WpfContextMenuDGV.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:WpfContextMenuDGV"
            Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <local:DataList x:Key="src"></local:DataList>
            <ContextMenu x:Key="cm"
                        Opened="OnOpened" Closed="OnClosed" StaysOpen="true"
                       >
                <MenuItem Header="File"/>
                <MenuItem Header="Save"/>
                <MenuItem Header="SaveAs"/>
            </ContextMenu>
        </Window.Resources>
     
         <Grid>
            <DataGrid 
                AutoGenerateColumns="True" 
                ItemsSource="{Binding Source={StaticResource src}}"
                ContextMenu="{StaticResource cm}">
                <DataGrid.CellStyle>
                    <Style TargetType="DataGridCell" >
                        <Style.Triggers>
                            <Trigger Property="IsEditing" Value="True">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="DataGridCell">
                                            <TextBox 
                                                Text="{Binding RelativeSource={RelativeSource TemplatedParent}, 
                                                Path=Content.Text, Mode=TwoWay, 
                                                UpdateSourceTrigger=Default}"
                                                HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
                                                ContextMenu="{StaticResource cm}"/>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
     
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </DataGrid.CellStyle>
     
            </DataGrid>
        </Grid>
    </Window>
    DataList est une ObservableCollection quelconque....!!!!
    bon code...

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 10
    Points : 5
    Points
    5
    Par défaut


    MABROUKI pour la solution et le code que tu as joints a ton message.

    Bon codage à toi aussi.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/11/2007, 12h33
  2. probleme de style d'une Iframe sous IE
    Par lemok dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/07/2007, 17h38
  3. [CSS]probleme de style sur cellules dans une table
    Par luimême dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 17/01/2006, 12h13
  4. [css] probleme de style
    Par maxonman dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 22/08/2005, 16h06
  5. [CSS] Probleme de style dans un mail
    Par gaspard dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 23/06/2005, 09h19

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