@@ -29,6 +29,7 @@ public sealed partial class DetailsLayoutPage : BaseGroupableLayoutPage
2929 // Fields
3030
3131 private ListedItem ? _nextItemToSelect ;
32+ private uint currentIconSize ;
3233
3334 // Properties
3435
@@ -136,6 +137,8 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
136137
137138 base . OnNavigatedTo ( eventArgs ) ;
138139
140+ currentIconSize = FolderSettings . GetRoundedIconSize ( ) ;
141+
139142 if ( FolderSettings ? . ColumnsViewModel is not null )
140143 {
141144 ColumnsViewModel . DateCreatedColumn = FolderSettings . ColumnsViewModel . DateCreatedColumn ;
@@ -191,7 +194,7 @@ protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
191194 UserSettingsService . LayoutSettingsService . PropertyChanged -= LayoutSettingsService_PropertyChanged ;
192195 }
193196
194- private void LayoutSettingsService_PropertyChanged ( object ? sender , PropertyChangedEventArgs e )
197+ private async void LayoutSettingsService_PropertyChanged ( object ? sender , PropertyChangedEventArgs e )
195198 {
196199 if ( e . PropertyName == nameof ( ILayoutSettingsService . DetailsViewSize ) )
197200 {
@@ -205,6 +208,14 @@ private void LayoutSettingsService_PropertyChanged(object? sender, PropertyChang
205208
206209 // Restore correct scroll position
207210 ContentScroller ? . ChangeView ( null , previousOffset , null ) ;
211+
212+ // Reload icons with correct size but only if the size changed
213+ var requestedIconSize = FolderSettings . GetRoundedIconSize ( ) ;
214+ if ( requestedIconSize != currentIconSize )
215+ {
216+ currentIconSize = requestedIconSize ;
217+ _ = ReloadItemIconsAsync ( ) ;
218+ }
208219 }
209220 else
210221 {
@@ -255,6 +266,19 @@ private void SetItemContainerStyle()
255266 // Set correct style
256267 FileList . ItemContainerStyle = RegularItemContainerStyle ;
257268 }
269+
270+ // Set icon column width
271+ var iconColumnWidth = UserSettingsService . LayoutSettingsService . DetailsViewSize switch
272+ {
273+ DetailsViewSizeKind . Compact => new GridLength ( 20 ) ,
274+ DetailsViewSizeKind . Small => new GridLength ( 20 ) ,
275+ DetailsViewSizeKind . Medium => new GridLength ( 24 ) ,
276+ DetailsViewSizeKind . Large => new GridLength ( 28 ) ,
277+ DetailsViewSizeKind . ExtraLarge => new GridLength ( 36 ) ,
278+ _ => new GridLength ( 20 )
279+ } ;
280+
281+ ColumnsViewModel . IconColumn . UserLength = iconColumnWidth ;
258282 }
259283
260284 private void FileList_LayoutUpdated ( object ? sender , object e )
0 commit comments