Skip to content

Commit b4c6fdc

Browse files
committed
Fix ColorPickerButton SelectedColor bug (fixes #4367)
Update internal ColorPicker Color when ColorPickerButton SelectedColor changes
1 parent 56d1b46 commit b4c6fdc

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Microsoft.Toolkit.Uwp.UI.Controls.Input/ColorPicker/ColorPickerButton.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public Color SelectedColor
8181
/// Identifies the <see cref="SelectedColor"/> dependency property.
8282
/// </summary>
8383
public static readonly DependencyProperty SelectedColorProperty =
84-
DependencyProperty.Register(nameof(SelectedColor), typeof(Color), typeof(ColorPickerButton), new PropertyMetadata(null));
84+
DependencyProperty.Register(nameof(SelectedColor), typeof(Color), typeof(ColorPickerButton), new PropertyMetadata(null, new PropertyChangedCallback(SelectedColorChanged)));
8585

8686
#pragma warning disable SA1306 // Field names should begin with lower-case letter
8787
//// Template Parts
@@ -142,6 +142,14 @@ protected override void OnApplyTemplate()
142142
}
143143
}
144144

145+
private static void SelectedColorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
146+
{
147+
if (d is ColorPickerButton instance && !(instance.ColorPicker is null))
148+
{
149+
instance.ColorPicker.Color = instance.SelectedColor;
150+
}
151+
}
152+
145153
private void ColorPicker_ColorChanged(Microsoft.UI.Xaml.Controls.ColorPicker sender, Microsoft.UI.Xaml.Controls.ColorChangedEventArgs args)
146154
{
147155
SelectedColor = args.NewColor;

0 commit comments

Comments
 (0)