Skip to content

Commit 41b580a

Browse files
committed
Adding support for height
1 parent 5ba4557 commit 41b580a

File tree

1 file changed

+44
-19
lines changed

1 file changed

+44
-19
lines changed

Microsoft.Toolkit.Uwp.UI/Triggers/ControlWidthTrigger.cs

Lines changed: 44 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Licensed to the .NET Foundation under one or more agreements.
1+
// Licensed to the .NET Foundation under one or more agreements.
22
// The .NET Foundation licenses this file to you under the MIT license.
33
// See the LICENSE file in the project root for more information.
44

@@ -29,15 +29,10 @@ public bool CanTrigger
2929
nameof(CanTrigger),
3030
typeof(bool),
3131
typeof(ControlWidthTrigger),
32-
new PropertyMetadata(true, OnCanTriggerProperty));
33-
34-
private static void OnCanTriggerProperty(DependencyObject d, DependencyPropertyChangedEventArgs e)
35-
{
36-
((ControlWidthTrigger)d).UpdateTrigger();
37-
}
32+
new PropertyMetadata(true, (d, e) => ((ControlWidthTrigger)d).UpdateTrigger()));
3833

3934
/// <summary>
40-
/// Gets or sets the max size at which to trigger.
35+
/// Gets or sets the max width at which to trigger.
4136
/// </summary>
4237
public double MaxWidth
4338
{
@@ -52,15 +47,10 @@ public double MaxWidth
5247
nameof(MaxWidth),
5348
typeof(double),
5449
typeof(ControlWidthTrigger),
55-
new PropertyMetadata(double.PositiveInfinity, OnMaxWidthPropertyChanged));
56-
57-
private static void OnMaxWidthPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
58-
{
59-
((ControlWidthTrigger)d).UpdateTrigger();
60-
}
50+
new PropertyMetadata(double.PositiveInfinity, (d, e) => ((ControlWidthTrigger)d).UpdateTrigger()));
6151

6252
/// <summary>
63-
/// Gets or sets the min size at which to trigger.
53+
/// Gets or sets the min width at which to trigger.
6454
/// </summary>
6555
public double MinWidth
6656
{
@@ -75,13 +65,44 @@ public double MinWidth
7565
nameof(MinWidth),
7666
typeof(double),
7767
typeof(ControlWidthTrigger),
78-
new PropertyMetadata(0.0, OnMinWidthPropertyChanged));
68+
new PropertyMetadata(0.0, (d, e) => ((ControlWidthTrigger)d).UpdateTrigger()));
7969

80-
private static void OnMinWidthPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
70+
/// <summary>
71+
/// Gets or sets the max height at which to trigger.
72+
/// </summary>
73+
public double MaxHeight
8174
{
82-
((ControlWidthTrigger)d).UpdateTrigger();
75+
get => (double)GetValue(MaxHeightProperty);
76+
set => SetValue(MaxHeightProperty, value);
8377
}
8478

79+
/// <summary>
80+
/// Identifies the <see cref="MaxHeight"/> DependencyProperty.
81+
/// </summary>
82+
public static readonly DependencyProperty MaxHeightProperty = DependencyProperty.Register(
83+
nameof(MaxHeight),
84+
typeof(double),
85+
typeof(ControlWidthTrigger),
86+
new PropertyMetadata(double.PositiveInfinity, (d, e) => ((ControlWidthTrigger)d).UpdateTrigger()));
87+
88+
/// <summary>
89+
/// Gets or sets the min height at which to trigger.
90+
/// </summary>
91+
public double MinHeight
92+
{
93+
get => (double)GetValue(MinHeightProperty);
94+
set => SetValue(MinHeightProperty, value);
95+
}
96+
97+
/// <summary>
98+
/// Identifies the <see cref="MinHeight"/> DependencyProperty.
99+
/// </summary>
100+
public static readonly DependencyProperty MinHeightProperty = DependencyProperty.Register(
101+
nameof(MinHeight),
102+
typeof(double),
103+
typeof(ControlWidthTrigger),
104+
new PropertyMetadata(0.0, (d, e) => ((ControlWidthTrigger)d).UpdateTrigger()));
105+
85106
/// <summary>
86107
/// Gets or sets the element whose width will observed
87108
/// for the trigger.
@@ -139,7 +160,11 @@ private void UpdateTrigger()
139160
return;
140161
}
141162

142-
SetActive(MinWidth <= TargetElement.ActualWidth && TargetElement.ActualWidth < MaxWidth);
163+
SetActive(
164+
MinWidth <= TargetElement.ActualWidth &&
165+
TargetElement.ActualWidth < MaxWidth &&
166+
MinHeight <= TargetElement.ActualHeight &&
167+
TargetElement.ActualHeight < MaxHeight);
143168
}
144169
}
145170
}

0 commit comments

Comments
 (0)