2010-05-24 29 views
19

Estoy tratando de deshacerme del borde del botón y solo mostrar texto, sin embargo, se muestra una línea delgada alrededor del texto aunque configuro borderThickness en 0 y borderbrush en transparent. alt text http://i45.tinypic.com/scywye.pngDeshágase del borde del botón en WPF?

mi código XAML para guardar el botón:

<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"/> 

¿Hay alguna forma de deshacerse de la frontera botón?

+0

corte corta: '', desde un [puesto similar] (http://stackoverflow.com/questions/995757/how-do-you-completely-remove-the-button-border-in-wpf) –

Respuesta

47

Necesita anular ControlTemplate del botón:

<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> 
+3

Su sugerencia eliminará todo el estilo resaltado/resaltado del botón. –

+2

Sí. Si desea conservar eso, debe obtener una copia de la plantilla de control (por ejemplo, usando la mezcla de expresión), modificarla (y dejarla en las partes que desea conservar) y luego aplicarla a sus botones. – bitbonk

2

Es necesario crear una nueva plantilla para sus botones.

La manera más fácil de hacerlo es abra su proyecto en Expression Blend, seleccione el botón y luego haga clic derecho y seleccione "Editar plantilla> Editar una copia ...". Esto copia la plantilla existente en una que puede modificar. Es más fácil si lo creas en un diccionario de recursos.

Luego, seleccione la plantilla y en la pestaña Recursos (a la derecha de la IU) seleccione ButtonFocusVisual. Seleccione la pestaña Propiedades y expanda la sección Varios. Esto tiene campos BorderStyle y BorderThickness (entre otros). Establezca el estilo en Ninguno.

+0

Sigo tu guía pero no eliminé el borde. Publiqué el problema aquí http://stackoverflow.com/questions/4553692/how-to-remove-buttonchrome-border-when-defining-the-template-of-a-border. Por favor apóyenos. –

11

El método que recientemente he encontrado para ser más útil para esto iba a tener su botón de usar el estilo de una barra de herramientas. Esto solo usará la imagen o el texto mientras solo muestra los bordes del botón al pasar el mouse.

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" 
     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" /> 
+1

Holy Buckets Dan! ¡Esto es genio! –

+1

Algo para tener en cuenta sobre esto, no funcionará si el botón está dentro de una barra de herramientas. –

Cuestiones relacionadas