Laden...

WPF Button mit Images

Erstellt von hannes123456 vor 10 Jahren Letzter Beitrag vor 10 Jahren 4.534 Views
H
hannes123456 Themenstarter:in
47 Beiträge seit 2013
vor 10 Jahren
WPF Button mit Images
<Style x:Key="LinkButton" TargetType="Button">
        <Setter Property="Cursor" Value="Hand"/>
        <Setter Property="Foreground" Value="{StaticResource LinkButtonForeground}" />
        <Setter Property="Template">
            <Setter.Value>
              <ControlTemplate TargetType="Button">
                    <!--<TextBlock><ContentPresenter/></TextBlock>-->
                    <Image Width="22" Height="6" Source="....BtnDelete.png"/>
               
                </ControlTemplate>


            </Setter.Value>
        </Setter>
    </Style>

Mein Button wurde nun duch das Image ersetzt aber wie bekomme ich ein IsMouseOver dort hinein ?

709 Beiträge seit 2008
vor 10 Jahren

Mein Button wurde nun duch das Image ersetzt aber wie bekomme ich ein IsMouseOver dort hinein ?

Hallo hannes123456,
Was meinst du damit? Wo soll es denn hinein und was soll es machen?

Gruß
pinki

H
hannes123456 Themenstarter:in
47 Beiträge seit 2013
vor 10 Jahren

Ja evtl. etwas doof ausgedrückt, das Image soll sich bei einen MouseOver Event ändern.

5.657 Beiträge seit 2006
vor 10 Jahren

Hi hannes123456,

dafür kannst du einen Trigger verwenden: How do I change an item's appearance on mouseover in WPF?.

Christian

Weeks of programming can save you hours of planning

H
hannes123456 Themenstarter:in
47 Beiträge seit 2013
vor 10 Jahren

<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
?!?!?!?!?!
</Trigger>
</Style.Triggers>

Soweit so gut 😛 ?

Wie änder ich jetz das Image ?

5.657 Beiträge seit 2006
vor 10 Jahren

Hi hannes123456,

vermutlich hättest du es von selbst rausbekommen, wenn du dich mit dem Artikel etwas länger als 3 Minuten beschäftigt hättest. Es gibt übrigens auch eine Doku dazu: :rtfm:

Wir erwarten hier etwas Eigeninitiative, siehe unsere Forenregeln: [Hinweis] Wie poste ich richtig?

Christian

Weeks of programming can save you hours of planning

H
hannes123456 Themenstarter:in
47 Beiträge seit 2013
vor 10 Jahren

Versuch das schon länger als eine Stunde, und bekomme es leider nicht hin. Und bin schon auf der 30. Seite bei google.. daran kanns nicht liegen.

<Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Foreground" Value="#red" />
            </Trigger>
        </Style.Triggers>

Das geht ja so auch nur kann ich das Image einfach nicht ändern...

H
hannes123456 Themenstarter:in
47 Beiträge seit 2013
vor 10 Jahren

Gelöst 😃

<Style x:Key="LinkButton" TargetType="Button">
        <Setter Property="Cursor" Value="Hand"/>
        <Setter Property="Foreground" Value="{StaticResource LinkButtonForeground}" />
        <Setter Property="BorderBrush" Value="Transparent"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="Template">
            <Setter.Value>
              <ControlTemplate TargetType="Button">
              <!--<TextBlock><ContentPresenter/></TextBlock>-->
                    <Button BorderBrush="Transparent" BorderThickness="0" Width="22" Height="6">
                        <Button.Background>
                            <ImageBrush ImageSource="pack://application:,,,/Projekt;component/Images/BtnDelete.png"/>
                        </Button.Background>
                    </Button>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background">
                                <Setter.Value>
                                    <ImageBrush ImageSource="pack://application:,,,/Projekt;component/Images/BtnDeleteActive.png" />
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                
                <Setter Property="Template">
                    
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Image Source="pack://application:,,,/Projekt;component/Images/BtnDeleteActive.png" Width="22" Height="6"/>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
B
357 Beiträge seit 2010
vor 10 Jahren

Und vermutlich hast du jetzt auch einiges mehr gelernt, als wenn dir jemand einfach den fertigen Code hingeklatscht hätte.

5.299 Beiträge seit 2008
vor 10 Jahren

aber scheint mir mehr als doppelt gemoppelt.

Wieso fahren da jetzt 2 Triggers herum?

Ist das wirklich nötig, dass im ControlTemplate eines Buttons selbst wieder ein Button ist?

Der frühe Apfel fängt den Wurm.