@@ -15,57 +15,90 @@ public partial class StorageBar
1515 {
1616 private void OnValueBarHeightChanged ( double oldValue , double newValue )
1717 {
18- UpdateControl ( this ) ;
18+ UpdateControl ( ) ;
1919 }
2020
2121 private void OnTrackBarHeightChanged ( double oldValue , double newValue )
2222 {
23- UpdateControl ( this ) ;
23+ UpdateControl ( ) ;
2424 }
2525
2626 private void OnBarShapeChanged ( BarShapes oldValue , BarShapes newValue )
2727 {
28- UpdateControl ( this ) ;
28+ UpdateControl ( ) ;
2929 }
3030
3131 private void OnPercentChanged ( double oldValue , double newValue )
3232 {
3333 return ; //Read-only
3434
3535 DoubleToPercentage ( Value , Minimum , Maximum ) ;
36- UpdateControl ( this ) ;
36+ UpdateControl ( ) ;
3737 }
3838
3939 private void OnPercentCautionChanged ( double oldValue , double newValue )
4040 {
41- UpdateControl ( this ) ;
41+ UpdateControl ( ) ;
4242 }
4343
4444 private void OnPercentCriticalChanged ( double oldValue , double newValue )
4545 {
46- UpdateControl ( this ) ;
46+ UpdateControl ( ) ;
4747 }
4848
4949 /// <inheritdoc/>
5050 protected override void OnValueChanged ( double oldValue , double newValue )
5151 {
5252 _oldValue = oldValue ;
5353 base . OnValueChanged ( oldValue , newValue ) ;
54- UpdateValue ( this , Value , _oldValue , false , - 1.0 ) ;
54+ UpdateValue ( Value , _oldValue , false , - 1.0 ) ;
5555 }
5656
5757 /// <inheritdoc/>
5858 protected override void OnMaximumChanged ( double oldValue , double newValue )
5959 {
6060 base . OnMaximumChanged ( oldValue , newValue ) ;
61- UpdateValue ( this , oldValue , newValue , false , - 1.0 ) ;
61+ UpdateValue ( oldValue , newValue , false , - 1.0 ) ;
6262 }
6363
6464 /// <inheritdoc/>
6565 protected override void OnMinimumChanged ( double oldValue , double newValue )
6666 {
6767 base . OnMinimumChanged ( oldValue , newValue ) ;
68- UpdateValue ( this , oldValue , newValue , false , - 1.0 ) ;
68+ UpdateValue ( oldValue , newValue , false , - 1.0 ) ;
69+ }
70+
71+ private void StorageBar_IsEnabledChanged ( object sender , DependencyPropertyChangedEventArgs e )
72+ {
73+ UpdateControl ( ) ;
74+ }
75+
76+ private void StorageBar_Unloaded ( object sender , RoutedEventArgs e )
77+ {
78+ SizeChanged -= StorageBar_SizeChanged ;
79+ Unloaded -= StorageBar_Unloaded ;
80+ IsEnabledChanged -= StorageBar_IsEnabledChanged ;
81+ }
82+
83+ private void StorageBar_SizeChanged ( object sender , SizeChangedEventArgs e )
84+ {
85+ Size minSize ;
86+
87+ if ( DesiredSize . Width < MinWidth || DesiredSize . Height < MinHeight ||
88+ e . NewSize . Width < MinWidth || e . NewSize . Height < MinHeight )
89+ {
90+ Width = MinWidth ;
91+ Height = MinHeight ;
92+
93+ minSize = new ( MinWidth , MinHeight ) ;
94+ }
95+ else
96+ {
97+ minSize = e . NewSize ;
98+ }
99+
100+ UpdateContainer ( minSize ) ;
101+ UpdateControl ( ) ;
69102 }
70103 }
71104}
0 commit comments