67 votes

Comment supprimer complètement la bordure du bouton dans wpf ?

J'essaie de créer un bouton qui contient une image sans bordure, comme les boutons de la barre d'outils de Firefox avant que vous ne les survoliez pour voir le bouton complet.

J'ai essayé de régler le BorderBrush à Transparent , BorderThickness à 0 et a également essayé BorderBrush="{x:Null}" mais vous pouvez toujours voir le contour du bouton.

128voto

Simon Points 11945

Essayez ceci

<Button BorderThickness="0"  
    Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" >...

14voto

Ce que vous devez faire, c'est quelque chose comme ça :

<Button Name="MyFlatImageButton"
        Background="Transparent"
        BorderBrush="Transparent"
        BorderThickness="0" 
        Padding="-4">
   <Image Source="MyImage.png"/>
</Button>

J'espère que c'est ce que vous recherchiez.

Edit : Désolé, j'ai oublié de mentionner que si vous voulez voir la bordure du bouton lorsque vous passez le curseur sur l'image, il suffit de sauter l'étape de l'enregistrement de l'image. Padding="-4" .

13voto

Nam G VU Points 5954

Je ne sais pas pourquoi d'autres n'ont pas fait remarquer que cette question est dupliquée avec celui-ci avec réponse acceptée .

Je cite ici la solution : Vous devez remplacer l'option ControlTemplate de la Button :

<Button Content="save" Name="btnSaveEditedText" 
                Background="Transparent" 
                Foreground="White" 
                FontFamily="Tw Cen MT Condensed" 
                FontSize="30" 
                Margin="-280,0,0,10"
                Width="60"
                BorderBrush="Transparent"
                BorderThickness="0">
    <Button.Template>
        <ControlTemplate TargetType="Button">
             <ContentPresenter Content="{TemplateBinding Content}"/>
        </ControlTemplate>
    </Button.Template>  
</Button>

11voto

Snehal Points 239

Vous devrez peut-être modifier le modèle de bouton, ce qui vous donnera un bouton sans cadre, mais aussi sans effet de pression ou de désactivation :

    <Style x:Key="TransperentStyle" TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Background="Transparent">
                        <ContentPresenter/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Et le bouton :

<Button Style="{StaticResource TransparentButton}"/>

2voto

micahtan Points 6457

Vous savez peut-être déjà qu'en plaçant votre bouton à l'intérieur d'une barre d'outils, vous obtenez ce comportement, mais si vous voulez quelque chose qui fonctionne dans TOUS les thèmes actuels avec une certaine prévisibilité, vous devez créer un nouveau ControlTemplate.

La solution de Prashant ne fonctionne pas avec un bouton qui n'est pas dans une barre d'outils lorsque le bouton a le focus. Elle ne fonctionne pas non plus à 100 % avec le thème par défaut de XP - vous pouvez toujours voir des bordures grises légères lorsque l'arrière-plan de votre conteneur est blanc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X