C# WPF Button MausOver Farbe ändern?

2 Antworten

Button > Rechtsklick und da dann eine neue Vorlage erstellen oder so. Ich sage das gerade einfach aus dem Kopf ... Dann legst du eine neue Vorlage dafür an und kannst den anhand der Vorlage designen, wie du willst und das Design kannst du dann auch auf alle Buttons anwenden, wenn du willst


MegaMann1234 
Fragesteller
 08.09.2022, 12:48

Okay ja soweit bin ich schon, aber ich weiß leider nicht, wie das Property oder die Eigenschaft heißt, wo man die Farbe einstellen kann, wenn die Maus über den Button ist. Leider finde ich auch dazu nichts im Netz.

0
FaTech  08.09.2022, 12:53
@MegaMann1234

Wie schon gesagt. Mit meinem Weg erstellst du ein Template und da steht alles richtig drin. Du musst es also nur noch befüllen. Dazu hilft das lesen der neuen erstellten XAML Codes

0

Das kannst du mit einem Trigger lösen. Das Template müsste dafür überschrieben werden, um das Standardverhalten zu ersetzen.

<Button Content="Hover me">
  <Button.Style>
    <Style TargetType="{x:Type Button}">
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="{x:Type Button}">
            <Border Background="{TemplateBinding Background}" BorderBrush="DarkGray" BorderThickness="1">
              <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
            </Border>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
      <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
          <Setter Property="Background" Value="Red" />
        </Trigger>
      </Style.Triggers>
    </Style>
  </Button.Style>
</Button>

Um die Farbe bei Mouseover gänzlich wegzubekommen, bräuchtest du bei obigen Code lediglich den Trigger weglassen. Das Standardverhalten wird ja wie gesagt überschrieben.

Wenn du den Style für mehrere Buttons nutzen möchtest, lege ihn besser als Ressource an und verweise dann nur darauf.

Beispiel:

<Window.Resources>
  <Style x:Key="CustomButton" TargetType="{x:Type Button}">
    <!-- ... -->
  </Style>
</Window.Resources>
<Grid>
  <Button Content="Hover me" Style="{StaticResource CustomButton}" />
</Grid>

MegaMann1234 
Fragesteller
 09.09.2022, 20:25

Habe selber einen Button erstellt Danke 👍

0