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 :

Espacement entre les items d'un menu


Sujet :

Windows Presentation Foundation

  1. #1
    Membre habitué Avatar de Thrud
    Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 183
    Points
    183
    Par défaut Espacement entre les items d'un menu
    Bonjour,

    je veux faire un ContextMenu contenant des boutons, et j'ai un problème de présentation.
    Je ne sais pas comment réduire l'espace entre les boutons.
    Voici un exemple minimal pour voir le problème :

    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
     
    <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <Page.Resources>
    <XmlDataProvider x:Key="LeMenu" XPath="Menu/Items">
    <x:XData>
    	<Menu xmlns="">
    		<Items>
    			<Item Name="A1" />
    			<Item Name="A2" />
    			<Item Name="A3" />
    			<Item Name="A4" />
    		</Items>
    	</Menu>
    </x:XData>
    </XmlDataProvider>
     
    </Page.Resources>
     
    <TextBlock Background="Yellow">
    	<TextBlock.Resources>
           	<Style TargetType="MenuItem">
                 		<Setter Property="Margin" Value="0" />
                        <Setter Property="Padding" Value="0" />
    			<Setter Property="Background" Value="Red" />
                 </Style>
           </TextBlock.Resources>
                                <TextBlock.ContextMenu>
                                    <ContextMenu ItemsSource="{Binding Source={StaticResource LeMenu}, XPath=*}">
                                        <ContextMenu.ItemsPanel>
                                            <ItemsPanelTemplate>
                                                <StackPanel Orientation="Horizontal" />
                                            </ItemsPanelTemplate>
                                        </ContextMenu.ItemsPanel>
                                        <ContextMenu.ItemTemplate>
                                            <DataTemplate>
                                                <Button Content="{Binding XPath=@Name}" Height="25" Width="25" />
                                            </DataTemplate>
                                        </ContextMenu.ItemTemplate>
                                    </ContextMenu>
                                </TextBlock.ContextMenu>
     
    	Clic-droit
      </TextBlock>
    </Page>
    j'arrive bien à changer la couleur de fond des items du menu, mais les propriétés Margin et Padding ne semblent avoir aucun effet.

    Quelqu'un sait quelle est la propriété à modifier ?

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Ce sont pourtant les bonnes propriétés. Essaie de mettre des grandes valeurs pour tester (20 par exemple).

    Sinon en mettant ce code dans les ressources, ça marche pour moi :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      <Page.Resources>
        <Style TargetType="MenuItem">
          <Setter Property="Margin" Value="0" />
          <Setter Property="Padding" Value="10" />
          <Setter Property="Background" Value="AliceBlue" />
        </Style>
      </Page.Resources>

  3. #3
    Membre habitué Avatar de Thrud
    Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 183
    Points
    183
    Par défaut
    Merci,

    ça ne marche toujours pas pour moi si je met le style dans la page.
    En revanche, si je met une grande valeur comme 20, elle est bien prise en compte.
    Du coup, j'ai vu que si je met une valeur négative pour le padding, je peux réduire l'espace entre les boutons jusqu'à un certain seuil, mais impossible de passer en dessous.

  4. #4
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Code xml : 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
    <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    	<Page.Resources>
    		<XmlDataProvider x:Key="LeMenu" XPath="Menu/Items">
    			<x:XData>
    				<Menu xmlns="">
    					<Items>
    						<Item Name="A1" />
    						<Item Name="A2" />
    						<Item Name="A3" />
    						<Item Name="A4" />
    					</Items>
    				</Menu>
    			</x:XData>
    		</XmlDataProvider>
    		<Style TargetType="MenuItem">
    			<Setter Property="Template">
    				<Setter.Value>
    					<ControlTemplate>
    						<Button Content="{Binding XPath=@Name}" />
    					</ControlTemplate>
    				</Setter.Value>
    			</Setter>
    		</Style>
    	</Page.Resources>
    	<TextBlock Background="Yellow">
        <TextBlock.ContextMenu>
            <ContextMenu ItemsSource="{Binding Source={StaticResource LeMenu}, XPath=*}">
                <ContextMenu.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </ContextMenu.ItemsPanel>
            </ContextMenu>
        </TextBlock.ContextMenu>
    	Clic-droit
      </TextBlock>
    </Page>

  5. #5
    Membre habitué Avatar de Thrud
    Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 183
    Points
    183
    Par défaut
    ça marche comme ça, merci beaucoup

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

Discussions similaires

  1. Espace entre les items
    Par Johngtrs dans le forum Android
    Réponses: 4
    Dernier message: 08/12/2011, 15h02
  2. [Enumerate] Réduire l'espacement vertical entre les items
    Par kwakanar dans le forum Mise en forme
    Réponses: 4
    Dernier message: 10/09/2007, 11h44
  3. lien entre les items d'un menu en javascript et les servlets
    Par Smix007 dans le forum Services Web
    Réponses: 2
    Dernier message: 26/01/2007, 16h26
  4. Problème de menu: espaces entre les images
    Par nmathon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 30/05/2006, 15h16
  5. Menu CSS vertical, petit espace entre les images sous IE
    Par Death83 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/10/2005, 10h52

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