How do you completely remove the button border in wpf?

前端 未结 8 1304
花落未央
花落未央 2020-11-28 21:33

I\'m trying to create a button that has an image in it and no border - just like the Firefox toolbar buttons before you hover over them and see the full button.

I\'v

相关标签:
8条回答
  • 2020-11-28 21:39

    Try this

    <Button BorderThickness="0"  
        Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" >...
    
    0 讨论(0)
  • 2020-11-28 21:48

    What you have to do is something like this:

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

    Hope this is what you were looking for.

    Edit: Sorry, forgot to mention that if you want to see the button-border when you hover over the image, all you have to do is skip the Padding="-4".

    0 讨论(0)
  • 2020-11-28 21:48

    You may already know that putting your Button inside of a ToolBar gives you this behavior, but if you want something that will work across ALL current themes with any sort of predictability, you'll need to create a new ControlTemplate.

    Prashant's solution does not work with a Button not in a toolbar when the Button has focus. It also doesn't work 100% with the default theme in XP -- you can still see faint gray borders when your container Background is white.

    0 讨论(0)
  • 2020-11-28 21:52

    I don't know why others haven't pointed out that this question is duplicated with this one with accepted answer.

    I quote here the solution: You need to override the ControlTemplate of the 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>
    
    0 讨论(0)
  • 2020-11-28 21:53

    You can use Hyperlink instead of Button, like this:

            <TextBlock>
                <Hyperlink TextDecorations="{x:Null}">
                <Image Width="16"
                       Height="16"
                       Margin="3"
                       Source="/YourProjectName;component/Images/close-small.png" />
                </Hyperlink>
            </TextBlock>
    
    0 讨论(0)
  • 2020-11-28 21:58

    Why don't you set both Background & BorderBrush by same brush

     <Style TargetType="{x:Type Button}" >
            <Setter Property="Background" Value="{StaticResource marginBackGround}"></Setter>
            <Setter Property="BorderBrush" Value="{StaticResource marginBackGround}"></Setter>            
     </Style>
    
    <LinearGradientBrush  x:Key="marginBackGround" EndPoint=".5,1" StartPoint="0.5,0">
        <GradientStop Color="#EE82EE" Offset="0"/>
        <GradientStop Color="#7B30B6" Offset="0.5"/>
        <GradientStop Color="#510088" Offset="0.5"/>
        <GradientStop Color="#76209B" Offset="0.9"/>
        <GradientStop Color="#C750B9" Offset="1"/>
    </LinearGradientBrush>
    
    0 讨论(0)
提交回复
热议问题