bool IsActive
and ActiveChanged
event on StateTriggerBase.It's currently impossible to build composite state triggers because whether a state trigger is active or not can't be monitored, limiting their usage.
I found it very useful in the WindowsStateTriggers repo, as I could make triggers that would trigger based on or/and/xor conditions of multiple triggers. I had to however add my own interface to my triggers to expose the Active property and ActiveChanged event, meaning my composite trigger weren't compatible with other 3rd and 1st part state triggers. It created some interesting capabilities like enabling/disabling UI if too many check boxes were checked etc.
Add the following to StateTriggerBase:
/// <summary>
/// Gets a value indicating whether this trigger is currently active.
/// </summary>
/// <value><c>true</c> if this trigger is active; otherwise, <c>false</c>.</value>
public bool IsActive { get; }
/// <summary>
/// Occurs when the <see cref="IsActive"/> property has changed.
/// </summary>
public event EventHandler IsActiveChanged;
Here's an example how exposing these values allows more complex state triggers, by combining multiple"
https://github.com/dotMorten/WindowsStateTriggers/blob/3a97a7a45b9c997e4f59e4afd98dc1ee7e0d8a49/src/TestApp/Samples/CompositeSample.xaml#L13-L49
Since StateTriggerBase is a DependencyObject
, wouldn't it make sense for IsActive
to just be a DependencyProperty
too?
That would make it publicly settable which I'm not sure is a good idea
@dotMorten Sorry for the long delay here. This was put in the Freezer, but I'm also adding the needs-winui-3 label too. As I think you know we're working to get open source asap, and once that happens I think we'll have more ability to evaluate suggestions like this. I appreciate the time you took to file it Morten.
Sorry for the long delay here
Oh no worries. I wasn't expecting it until then.
I'll be more than happy to implement it as well and submit the PR once the source is live.
@dotMorten I know you have the PR open to add the StateTriggers to the toolkit, since they're more foundational - does it make more sense to wait and propose adding them to WinUI 3 instead?
@michael-hawker No I didn't propose adding those triggers to WinUI. What I'm proposing here is to add the infrastructure that allows creating much more advanced state triggers - the PR you referred to does not have these advanced triggers because of the lack of that infrastructure - hence this feature request.
Most helpful comment
That would make it publicly settable which I'm not sure is a good idea