property in WPF is extremely handy, because it is automatically inherited by all children of the element where you assign it; therefore you don’t need to set it again on each element you want to bind.However, in some cases the is not accessible: it happens for elements that are not part of the visual or logical tree.We then add a trigger, which listens to the Is Mouse Over property - once this property changes to True, we apply two setters: We change the Foreground to red and then we make it underlined.
As you can see, I use an Event Trigger to subscribe to two events: Mouse Enter and Mouse Leave.
When the mouse enters, I make a smooth and animated transition to a Font Size of 28 pixels in 300 milliseconds.
It watches a specific property on the owner control and when that property has a value that matches the specified value, properties can change.
In theory this might sound a bit complicated, but it's actually quite simple once we turn theory into an example: In this style, we set the Foreground property to blue, to make it look like a hyperlink.
But I’m not going to give up so soon, at least not while there are other options to consider 😉 The solution to our problem is actually quite simple, and takes advantage of the even when they’re not in the visual or logical tree.
I don’t know the exact mechanism that enables this behavior, but we’re going to take advantage of it to make our binding work…
We then supply a default style, where the text is "No" and the foreground color is red, and then, using a Data Trigger, we supply a style for when the Is Checked property of the Check Box is changed to True, in which case we make it green with a text saying "Yes! element, are mostly used to trigger an animation, in response to an event being called.
We haven't discussed animations yet, but to demonstrate how an event trigger works, we'll use them anyway.
For instance, consider the following example: In this example, we have a Check Box and a Text Block.
Using a Data Trigger, we bind the Text Block to the Is Checked property of the Check Box.
They work by creating a binding to a regular property, which is then monitored for changes.