Skip to content

Commit b265be3

Browse files
committed
refact: use more SG DependencyProperty
1 parent d862b18 commit b265be3

27 files changed

+1028
-2271
lines changed

.editorconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,8 @@ dotnet_diagnostic.MA0091.severity = none # Sender should be 'this' for
591591
dotnet_diagnostic.MA0131.severity = none # ArgumentNullException.ThrowIfNull should not be used with non-nullable types
592592

593593
dotnet_diagnostic.SA1010.severity = none # Opening square brackets must be spaced correctly
594+
dotnet_diagnostic.SA1311.severity = none # Static readonly fields must begin with upper case letter
595+
dotnet_diagnostic.IDE1006.severity = none # Static readonly fields must begin with upper case letter
594596

595597
dotnet_diagnostic.S107.severity = none # Methods should not have too many parameters
596598
dotnet_diagnostic.S1144.severity = none # Remove the unused internal class

sample/Atc.Wpf.Sample/Atc.Wpf.Sample.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151

5252
<ItemGroup>
5353
<PackageReference Include="Atc" Version="2.0.552" />
54-
<PackageReference Include="Atc.XamlToolkit" Version="1.5.37" />
55-
<PackageReference Include="Atc.XamlToolkit.Wpf" Version="1.5.37" />
54+
<PackageReference Include="Atc.XamlToolkit" Version="1.5.42" />
55+
<PackageReference Include="Atc.XamlToolkit.Wpf" Version="1.5.42" />
5656
<PackageReference Include="ControlzEx" Version="7.0.0" />
5757
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.4" />
5858
<PackageReference Include="Microsoft.Extensions.Options.DataAnnotations" Version="9.0.4" />

sample/Atc.Wpf.Sample/SamplesWpfTheming/InputButton/ImageButtonView.xaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,10 @@
3939
Orientation="Horizontal"
4040
Spacing="10">
4141
<atc:ImageButton
42+
HorizontalContentAlignment="Left"
4243
Content="Hello"
44+
ImageBorderSpacing="5"
45+
ImageContentSpacing="10"
4346
ImageSource="/Assets/ok.png"
4447
IsBusy="{Binding ElementName=CbIsBusy, Path=IsChecked}" />
4548
<atc:ImageButton

src/Atc.Wpf.Controls/Atc.Wpf.Controls.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848

4949
<ItemGroup>
5050
<PackageReference Include="Atc" Version="2.0.552" />
51-
<PackageReference Include="Atc.XamlToolkit" Version="1.5.37" />
52-
<PackageReference Include="Atc.XamlToolkit.Wpf" Version="1.5.37" />
51+
<PackageReference Include="Atc.XamlToolkit" Version="1.5.42" />
52+
<PackageReference Include="Atc.XamlToolkit.Wpf" Version="1.5.42" />
5353
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
5454
</ItemGroup>
5555

src/Atc.Wpf.Controls/BaseControls/ClockPanelPicker.xaml.cs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// ReSharper disable InconsistentNaming
12
namespace Atc.Wpf.Controls.BaseControls;
23

34
public partial class ClockPanelPicker : INotifyPropertyChanged
@@ -9,19 +10,12 @@ public partial class ClockPanelPicker : INotifyPropertyChanged
910

1011
public event PropertyChangedEventHandler? PropertyChanged;
1112

12-
public static readonly RoutedEvent SelectedClockChangedEvent = EventManager.RegisterRoutedEvent(
13-
nameof(SelectedClockChanged),
13+
[RoutedEvent(
1414
RoutingStrategy.Direct,
15-
typeof(EventHandler<RoutedEventArgs>),
16-
typeof(ClockPanelPicker));
15+
HandlerType = typeof(EventHandler<RoutedEventArgs>))]
16+
private static readonly RoutedEvent selectedClockChanged;
1717

18-
public event EventHandler<RoutedEventArgs> SelectedClockChanged
19-
{
20-
add => AddHandler(SelectedClockChangedEvent, value);
21-
remove => RemoveHandler(SelectedClockChangedEvent, value);
22-
}
23-
24-
[DependencyProperty(DefaultValue = "default(DateTime?)")]
18+
[DependencyProperty]
2519
private DateTime? selectedDateTime;
2620

2721
public ClockPanelPicker()
@@ -43,7 +37,8 @@ public ClockPanelPicker()
4337
SelectedKeyMinute = "0";
4438
}
4539

46-
protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null)
40+
protected virtual void OnPropertyChanged(
41+
[CallerMemberName] string? propertyName = null)
4742
{
4843
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
4944
}

src/Atc.Wpf.Controls/BaseControls/ColorPicker.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ public partial class ColorPicker
66
private RenderColorIndicatorType renderColorIndicatorType;
77

88
[DependencyProperty(
9-
DefaultValue = "Black",
9+
DefaultValue = nameof(Brushes.Black),
1010
PropertyChangedCallback = nameof(OnColorValueChanged))]
1111
private Color? colorValue;
1212

1313
[DependencyProperty(
14-
DefaultValue = "Black",
14+
DefaultValue = nameof(Brushes.Black),
1515
PropertyChangedCallback = nameof(OnBrushValueChanged))]
1616
private SolidColorBrush? brushValue;
1717

src/Atc.Wpf.Controls/BaseControls/DecimalXyBox.xaml.cs

Lines changed: 53 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -26,123 +26,49 @@ public event RoutedPropertyChangedEventHandler<decimal> ValueYChanged
2626
remove => RemoveHandler(ValueYChangedEvent, value);
2727
}
2828

29-
public static readonly DependencyProperty HideUpDownButtonsProperty = DependencyProperty.Register(
30-
nameof(HideUpDownButtons),
31-
typeof(bool),
32-
typeof(DecimalXyBox),
33-
new PropertyMetadata(BooleanBoxes.FalseBox));
34-
35-
public bool HideUpDownButtons
36-
{
37-
get => (bool)GetValue(HideUpDownButtonsProperty);
38-
set => SetValue(HideUpDownButtonsProperty, value);
39-
}
40-
41-
public static readonly DependencyProperty MaximumProperty = DependencyProperty.Register(
42-
nameof(Maximum),
43-
typeof(decimal),
44-
typeof(DecimalXyBox),
45-
new FrameworkPropertyMetadata(
46-
decimal.MaxValue,
47-
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal));
48-
49-
public decimal Maximum
50-
{
51-
get => (decimal)GetValue(MaximumProperty);
52-
set => SetValue(MaximumProperty, value);
53-
}
54-
55-
public static readonly DependencyProperty MinimumProperty = DependencyProperty.Register(
56-
nameof(Minimum),
57-
typeof(decimal),
58-
typeof(DecimalXyBox),
59-
new FrameworkPropertyMetadata(
60-
decimal.MinValue,
61-
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal));
62-
63-
public decimal Minimum
64-
{
65-
get => (decimal)GetValue(MinimumProperty);
66-
set => SetValue(MinimumProperty, value);
67-
}
68-
69-
public static readonly DependencyProperty PrefixTextXProperty = DependencyProperty.Register(
70-
nameof(PrefixTextX),
71-
typeof(string),
72-
typeof(DecimalXyBox),
73-
new FrameworkPropertyMetadata(
74-
string.Empty,
75-
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal));
76-
77-
public string PrefixTextX
78-
{
79-
get => (string)GetValue(PrefixTextXProperty);
80-
set => SetValue(PrefixTextXProperty, value);
81-
}
82-
83-
public static readonly DependencyProperty PrefixTextYProperty = DependencyProperty.Register(
84-
nameof(PrefixTextY),
85-
typeof(string),
86-
typeof(DecimalXyBox),
87-
new FrameworkPropertyMetadata(
88-
string.Empty,
89-
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal));
90-
91-
public string PrefixTextY
92-
{
93-
get => (string)GetValue(PrefixTextYProperty);
94-
set => SetValue(PrefixTextYProperty, value);
95-
}
96-
97-
public static readonly DependencyProperty SuffixTextProperty = DependencyProperty.Register(
98-
nameof(SuffixText),
99-
typeof(string),
100-
typeof(DecimalXyBox),
101-
new FrameworkPropertyMetadata(
102-
string.Empty,
103-
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal));
104-
105-
public string SuffixText
106-
{
107-
get => (string)GetValue(SuffixTextProperty);
108-
set => SetValue(SuffixTextProperty, value);
109-
}
110-
111-
public static readonly DependencyProperty ValueXProperty = DependencyProperty.Register(
112-
nameof(ValueX),
113-
typeof(decimal),
114-
typeof(DecimalXyBox),
115-
new FrameworkPropertyMetadata(
116-
defaultValue: 0m,
117-
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal,
118-
OnValueXLostFocus,
119-
coerceValueCallback: null,
120-
isAnimationProhibited: true,
121-
UpdateSourceTrigger.LostFocus));
122-
123-
public decimal ValueX
124-
{
125-
get => (decimal)GetValue(ValueXProperty);
126-
set => SetValue(ValueXProperty, value);
127-
}
128-
129-
public static readonly DependencyProperty ValueYProperty = DependencyProperty.Register(
130-
nameof(ValueY),
131-
typeof(decimal),
132-
typeof(DecimalXyBox),
133-
new FrameworkPropertyMetadata(
134-
defaultValue: 0m,
135-
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal,
136-
OnValueYLostFocus,
137-
coerceValueCallback: null,
138-
isAnimationProhibited: true,
139-
UpdateSourceTrigger.LostFocus));
140-
141-
public decimal ValueY
142-
{
143-
get => (decimal)GetValue(ValueYProperty);
144-
set => SetValue(ValueYProperty, value);
145-
}
29+
[DependencyProperty(DefaultValue = false)]
30+
private bool hideUpDownButtons;
31+
32+
[DependencyProperty(
33+
DefaultValue = PropertyDefaultValueConstants.MinValue,
34+
Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal)]
35+
private decimal minimum;
36+
37+
[DependencyProperty(
38+
DefaultValue = PropertyDefaultValueConstants.MaxValue,
39+
Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal)]
40+
private decimal maximum;
41+
42+
[DependencyProperty(
43+
DefaultValue = "",
44+
Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal)]
45+
private string prefixTextX;
46+
47+
[DependencyProperty(
48+
DefaultValue = "",
49+
Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal)]
50+
private string prefixTextY;
51+
52+
[DependencyProperty(
53+
DefaultValue = "",
54+
Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal)]
55+
private string suffixText;
56+
57+
[DependencyProperty(
58+
DefaultValue = 0,
59+
Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal,
60+
PropertyChangedCallback = nameof(OnValueXLostFocus),
61+
IsAnimationProhibited = true,
62+
DefaultUpdateSourceTrigger = UpdateSourceTrigger.LostFocus)]
63+
private decimal valueX;
64+
65+
[DependencyProperty(
66+
DefaultValue = 0,
67+
Flags = FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal,
68+
PropertyChangedCallback = nameof(OnValueYLostFocus),
69+
IsAnimationProhibited = true,
70+
DefaultUpdateSourceTrigger = UpdateSourceTrigger.LostFocus)]
71+
private decimal valueY;
14672

14773
public event EventHandler<ValueChangedEventArgs<decimal?>>? ValueXLostFocus;
14874

@@ -162,7 +88,11 @@ private void OnValueXChanged(
16288
return;
16389
}
16490

165-
RaiseEvent(new RoutedPropertyChangedEventArgs<decimal>((decimal)e.OldValue, (decimal)e.NewValue, ValueXChangedEvent));
91+
RaiseEvent(
92+
new RoutedPropertyChangedEventArgs<decimal>(
93+
(decimal)e.OldValue,
94+
(decimal)e.NewValue,
95+
ValueXChangedEvent));
16696
}
16797

16898
private void OnValueYChanged(
@@ -174,7 +104,11 @@ private void OnValueYChanged(
174104
return;
175105
}
176106

177-
RaiseEvent(new RoutedPropertyChangedEventArgs<decimal>((decimal)e.OldValue, (decimal)e.NewValue, ValueYChangedEvent));
107+
RaiseEvent(
108+
new RoutedPropertyChangedEventArgs<decimal>(
109+
(decimal)e.OldValue,
110+
(decimal)e.NewValue,
111+
ValueYChangedEvent));
178112
}
179113

180114
private static void OnValueXLostFocus(

0 commit comments

Comments
 (0)