Laden...

[erledigt] WPF Canvas IsMouseOver

Erstellt von Kaji vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.170 Views
K
Kaji Themenstarter:in
593 Beiträge seit 2007
vor 13 Jahren
[erledigt] WPF Canvas IsMouseOver

Hallo Leute,

ich versuche gerade mit Triggern zu arbeiten, aber es gibt eine Stelle wo ich nicht weiter komme.. Und zwar habe ich ein Canvas dem ich ein Style mit einem StyleTrigger zuweise. Aber er setzt nicht die Backgroundproperty wenn der Trigger zutrifft. Mit einem Button funktioniert es. Daher verstehe ich es nicht oO

Hier der Ausschnitt:


            <Canvas>
                <Canvas.Style>
                    <Style TargetType="Canvas">
                        <Style.Triggers>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter Property="Background" Value="Red" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Canvas.Style>
            </Canvas>

Viele Grüße,

Kaji

L
862 Beiträge seit 2006
vor 13 Jahren

            <Canvas Background="Transparent">
                <Canvas.Style>
                    <Style TargetType="Canvas">
                        <Style.Triggers>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter Property="Background" Value="Red" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Canvas.Style>
            </Canvas>

Den Canvas bekommt nur Mauseingaben wenn der Background ungleich null ist. So sollte es funktionieren.

K
Kaji Themenstarter:in
593 Beiträge seit 2007
vor 13 Jahren

Hallo Lector,

das ist zwar nicht ganz korrekt aber es hat mich auf den richtigen weg gebracht! Und zwar ist es so wenn die Variable Background direkt im Canvas gesetzt wird ist sie höher gewertet als alles was von einem Style kommt, daher ignoriert er dann den Style immer noch. Informationen dazu finden sich in Dependency Property Value Precedence

Ansonsten ein funktionierendes Beispiel ist:


            <Canvas>
                <Canvas.Style>
                    <Style TargetType="Canvas">
                        <Setter Property="Background" Value="Transparent" />
                        <Style.Triggers>
                            <Trigger Property="IsMouseOver" Value="true">
                                <Setter Property="Background" Value="Red" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Canvas.Style>
            </Canvas>