2010-05-24 9 views
19

Ich versuche, Button-Grenze loszuwerden und nur Text anzuzeigen, aber eine dünne Linie um den Text wird angezeigt, obwohl ich BorderThickness auf 0 und Borderbrush auf transparent setzen. alt text http://i45.tinypic.com/scywye.png Button-Grenze in WPF loswerden?

mein XAML-Code für Schaltfläche Speichern:

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

Gibt es trotzdem kann ich die Taste Grenze loswerden?

+0

Kurz Hack: '', von einem [ähnlichen Beitrag] (http://stackoverflow.com/questions/995757/how-do-you-complete-entfernen-the-button-border-in-wpf) –

Antwort

47

Sie benötigen die Control des Button außer Kraft zu setzen:

<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

Ihr Vorschlag wird alle Highlight/gedrückt Stil der Schaltfläche entfernen. –

+2

Ja. Wenn Sie dies beibehalten möchten, müssten Sie eine Kopie der Steuerelementvorlage (z. B. mit der Ausdrucksüberblendung) erstellen, sie ändern (und die Teile in denen Sie behalten möchten) und sie dann auf Ihre Schaltflächen anwenden. – bitbonk

2

Sie benötigen eine neue Vorlage für Ihre Schaltflächen zu erstellen.

Öffnen Sie am einfachsten Ihr Projekt in Expression Blend, wählen Sie die Schaltfläche und klicken Sie mit der rechten Maustaste und wählen Sie "Vorlage bearbeiten> Kopie bearbeiten". Dies kopiert die vorhandene Vorlage in eine Vorlage, die Sie ändern können. Es ist einfacher, wenn Sie es in einem Ressourcenwörterbuch erstellen.

Dann wählen Sie die Vorlage und auf der Registerkarte Ressource (auf der rechten Seite der Benutzeroberfläche) wählen Sie die ButtonFocusVisual. Wählen Sie die Registerkarte Eigenschaften und erweitern Sie den Abschnitt Verschiedenes. Dies hat BorderStyle und BorderThickness Felder (unter anderem). Legen Sie den Stil auf Keine fest.

+0

Ich folge Ihrem Guide, konnte aber den Rahmen nicht entfernen. Ich poste das Problem hier http://stackoverflow.com/questions/4553692/how-to-remove-buttonchrome-border-when-defining-the-template-of-a-border. Bitte unterstützen Sie uns. –

11

Die Methode, die ich vor kurzem nützlich zu sein am meisten gefunden für dieses Ihre Taste, um den Stil einer Symbolleiste verwenden haben war. Dadurch wird nur das Bild oder der Text verwendet, während beim Überfahren der Maus nur die Schaltflächenränder angezeigt werden.

<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

Heilige Eimer Dan! Das ist Genie! –

+1

Etwas zu beachten, es wird nicht funktionieren, wenn die Schaltfläche in einer Symbolleiste ist. –