redondos - ¿Cómo se elimina por completo el borde del botón en wpf?
quitar bordes a button (8)
Intento crear un botón que tenga una imagen y sin borde, al igual que los botones de la barra de herramientas de Firefox antes de pasar el cursor sobre ellos y ver el botón completo.
Intenté configurar BorderBrush
en Transparent
, BorderThickness
en 0
y también probé BorderBrush="{x:Null}"
, pero aún se puede ver el contorno del botón.
¿Por qué no configura Background & BorderBrush
con el mismo 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>
Lo que tienes que hacer es algo como esto:
<Button Name="MyFlatImageButton"
Background="Transparent"
BorderBrush="Transparent"
BorderThickness="0"
Padding="-4">
<Image Source="MyImage.png"/>
</Button>
Espero que esto sea lo que estabas buscando.
Editar: Perdón, se olvidó de mencionar que si desea ver el borde del botón al pasar el mouse sobre la imagen, todo lo que tiene que hacer es omitir el relleno = "- 4" .
No sé por qué otros no han señalado que esta pregunta está duplicada con esta con respuesta aceptada .
Cito aquí la solución: debe anular la ControlTemplate
de ControlTemplate
del 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>
Programáticamente, puedes hacer esto:
btn.BorderBrush = new SolidColorBrush(Colors.Transparent);
Prueba esto
<Button BorderThickness="0"
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" >...
Puede que tenga que cambiar la plantilla del botón, esto le dará un botón sin marco, pero también sin ningún tipo de presión o efecto desactivado:
<Style x:Key="TransparentStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="Transparent">
<ContentPresenter/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Y el botón:
<Button Style="{StaticResource TransparentStyle}"/>
Puede utilizar hipervínculo en lugar de botón, como este:
<TextBlock>
<Hyperlink TextDecorations="{x:Null}">
<Image Width="16"
Height="16"
Margin="3"
Source="/YourProjectName;component/Images/close-small.png" />
</Hyperlink>
</TextBlock>
Quizás ya sepas que poner tu Botón dentro de una Barra de Herramientas te da este comportamiento, pero si quieres algo que funcione en TODOS los temas actuales con algún tipo de predictibilidad, necesitarás crear una nueva Plantilla de Control.
La solución de Prashant no funciona con un botón que no está en una barra de herramientas cuando el botón tiene foco. Tampoco funciona al 100% con el tema predeterminado en XP: aún puede ver bordes grises tenues cuando el fondo de su contenedor es blanco.