@@ -95,39 +95,14 @@ private void OnLayeredIconChanged()
9595
9696 private void OnIconTypeChanged ( )
9797 {
98- // Handles changes to the IconType and setting the correct Visual States.
99-
100- // If ToggleBehavior is Auto, we check for _ownerToggle
101- if ( ToggleBehavior == ToggleBehaviors . Auto )
98+ if ( ToggleBehavior is ToggleBehaviors . Auto or ToggleBehaviors . Off )
10299 {
103- if ( _isOwnerToggled is true || IsFilled is true )
100+ if ( ToggleBehavior is ToggleBehaviors . Auto && ( _isOwnerToggled is true || IsFilled is true ) )
104101 {
105102 VisualStateManager . GoToState ( this , FilledTypeStateName , true ) ;
106103 return ;
107104 }
108- else if ( IsHighContrast is true || _isOwnerEnabled is false || IsEnabled is false )
109- {
110- VisualStateManager . GoToState ( this , OutlineTypeStateName , true ) ;
111- VisualStateManager . GoToState ( this , DisabledStateName , true ) ;
112- return ;
113- }
114- else
115- {
116- VisualStateManager . GoToState (
117- this ,
118- IconType is ThemedIconTypes . Layered ? LayeredTypeStateName : OutlineTypeStateName ,
119- true ) ;
120- }
121- }
122- // If ToggleBehavior is On, we only go to Filled.
123- else if ( ToggleBehavior == ToggleBehaviors . On )
124- {
125- VisualStateManager . GoToState ( this , FilledTypeStateName , true ) ;
126- }
127- // For Off, we don't respond to _ownerToggle at all
128- else
129- {
130- if ( IsFilled is true )
105+ if ( ToggleBehavior is ToggleBehaviors . Off && IsFilled is true )
131106 {
132107 VisualStateManager . GoToState ( this , FilledTypeStateName , true ) ;
133108 return ;
@@ -146,49 +121,27 @@ private void OnIconTypeChanged()
146121 true ) ;
147122 }
148123 }
124+ else if ( ToggleBehavior is ToggleBehaviors . On )
125+ {
126+ VisualStateManager . GoToState ( this , FilledTypeStateName , true ) ;
127+ }
149128
150129 VisualStateManager . GoToState ( this , EnabledStateName , true ) ;
151130 }
152131
153132 private void OnIconColorTypeChanged ( )
154133 {
155- // Handles changes to the IconColorType and setting the correct Visual States.
156-
157- // First we check the enabled state
158- if ( _isOwnerEnabled is false || IsEnabled is false )
134+ if ( _isOwnerEnabled || IsEnabled )
159135 {
160- // If ToggleBehavior is Auto and _ownerToggled is true
161- if ( ToggleBehavior == ToggleBehaviors . Auto && _isOwnerToggled is true )
162- {
163- VisualStateManager . GoToState ( this , DisabledToggleColorStateName , true ) ;
164- }
165- // If ToggleBehavior is On
166- else if ( ToggleBehavior == ToggleBehaviors . On )
167- {
168- VisualStateManager . GoToState ( this , DisabledToggleColorStateName , true ) ;
169- }
170- // everything else uses Disabled Color
171- else
172- {
173- VisualStateManager . GoToState ( this , DisabledColorStateName , true ) ;
174- }
175- }
176- // Everything else is Enabled
177- else
178- {
179- // If ToggleBehavior is Auto and _ownerToggled is true
180- if ( ToggleBehavior == ToggleBehaviors . Auto && _isOwnerToggled is true )
181- {
182- VisualStateManager . GoToState ( this , ToggleStateName , true ) ;
183- }
184- // If ToggleBehavior is On
185- else if ( ToggleBehavior == ToggleBehaviors . On )
136+ if ( ( ToggleBehavior is ToggleBehaviors . Auto && _isOwnerToggled ) ||
137+ ToggleBehavior is ToggleBehaviors . On )
186138 {
139+ // Toggle
187140 VisualStateManager . GoToState ( this , ToggleStateName , true ) ;
188141 }
189- // everything else uses the appropriate color state
190142 else
191143 {
144+ // Use colorful ones
192145 VisualStateManager . GoToState (
193146 this ,
194147 IconColorType switch
@@ -204,11 +157,20 @@ private void OnIconColorTypeChanged()
204157 true ) ;
205158 }
206159
160+ // Update layered icon color
207161 if ( GetTemplateChild ( LayeredPathCanvas ) is Canvas canvas )
208- {
209162 foreach ( var layer in canvas . Children . Cast < ThemedIconLayer > ( ) )
210163 layer . IconColorType = IconColorType ;
211- }
164+ }
165+ else
166+ {
167+ // Disable + toggle
168+ if ( ( ToggleBehavior is ToggleBehaviors . Auto && _isOwnerToggled is true ) ||
169+ ToggleBehavior is ToggleBehaviors . On )
170+ VisualStateManager . GoToState ( this , DisabledToggleColorStateName , true ) ;
171+ // Disable
172+ else
173+ VisualStateManager . GoToState ( this , DisabledColorStateName , true ) ;
212174 }
213175 }
214176
0 commit comments