Skip to content

Commit 81d248a

Browse files
committed
Fixes to GridView for memory usage
1 parent 713e777 commit 81d248a

File tree

2 files changed

+41
-39
lines changed

2 files changed

+41
-39
lines changed

Files UWP/Filesystem/ItemViewModel.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -340,12 +340,12 @@ public async void AddItemsToCollectionAsync(string path)
340340

341341
if (tabInstance.accessibleContentFrame.SourcePageType == typeof(GenericFileBrowser))
342342
{
343-
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 20, ThumbnailOptions.UseCurrentScale);
343+
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 20, ThumbnailOptions.ResizeThumbnail);
344344
_options.SetPropertyPrefetch(PropertyPrefetchOptions.BasicProperties, new string[] { "System.DateModified", "System.ContentType", "System.Size", "System.FileExtension" });
345345
}
346346
else if (tabInstance.accessibleContentFrame.SourcePageType == typeof(PhotoAlbum))
347347
{
348-
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 275, ThumbnailOptions.UseCurrentScale);
348+
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 80, ThumbnailOptions.ResizeThumbnail);
349349
_options.SetPropertyPrefetch(PropertyPrefetchOptions.BasicProperties, new string[] { "System.FileExtension" });
350350
}
351351
_options.IndexerOption = IndexerOption.OnlyUseIndexerAndOptimizeForIndexedProperties;
@@ -356,12 +356,12 @@ public async void AddItemsToCollectionAsync(string path)
356356

357357
if (tabInstance.accessibleContentFrame.SourcePageType == typeof(GenericFileBrowser))
358358
{
359-
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 20, ThumbnailOptions.UseCurrentScale);
359+
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 20, ThumbnailOptions.ResizeThumbnail);
360360
_options.SetPropertyPrefetch(PropertyPrefetchOptions.BasicProperties, new string[] { "System.DateModified", "System.ContentType", "System.ItemPathDisplay", "System.Size", "System.FileExtension" });
361361
}
362362
else if (tabInstance.accessibleContentFrame.SourcePageType == typeof(PhotoAlbum))
363363
{
364-
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 275, ThumbnailOptions.UseCurrentScale);
364+
_options.SetThumbnailPrefetch(ThumbnailMode.ListView, 80, ThumbnailOptions.ResizeThumbnail);
365365
_options.SetPropertyPrefetch(PropertyPrefetchOptions.BasicProperties, new string[] { "System.FileExtension" });
366366
}
367367

@@ -515,11 +515,13 @@ private async Task AddFile(StorageFile file, CancellationToken token)
515515
{
516516
try
517517
{
518-
var itemThumbnailImg = await file.GetThumbnailAsync(ThumbnailMode.ListView, 40, ThumbnailOptions.ReturnOnlyIfCached);
518+
var itemThumbnailImg = await file.GetThumbnailAsync(ThumbnailMode.ListView, 20, ThumbnailOptions.ResizeThumbnail);
519519
if (itemThumbnailImg != null)
520520
{
521521
itemEmptyImgVis = Visibility.Collapsed;
522522
itemThumbnailImgVis = Visibility.Visible;
523+
icon.DecodePixelWidth = 20;
524+
icon.DecodePixelHeight = 20;
523525
await icon.SetSourceAsync(itemThumbnailImg);
524526
}
525527
else
@@ -540,11 +542,13 @@ private async Task AddFile(StorageFile file, CancellationToken token)
540542
{
541543
try
542544
{
543-
var itemThumbnailImg = await file.GetThumbnailAsync(ThumbnailMode.ListView, 275, ThumbnailOptions.ReturnOnlyIfCached);
545+
var itemThumbnailImg = await file.GetThumbnailAsync(ThumbnailMode.ListView, 80, ThumbnailOptions.ResizeThumbnail);
544546
if (itemThumbnailImg != null)
545547
{
546548
itemEmptyImgVis = Visibility.Collapsed;
547549
itemThumbnailImgVis = Visibility.Visible;
550+
icon.DecodePixelWidth = 80;
551+
icon.DecodePixelHeight = 80;
548552
await icon.SetSourceAsync(itemThumbnailImg);
549553
}
550554
else

Files UWP/PhotoAlbum.xaml

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -407,48 +407,48 @@
407407
<ProgressBar Name="ProgBar" Height="10" VerticalAlignment="Top" IsIndeterminate="True"/>
408408
<TextBlock Visibility="{x:Bind TextState.isVisible, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Name="EmptyText" HorizontalAlignment="Center" Text="This folder is empty." TextWrapping="Wrap" VerticalAlignment="Top" Margin="0,125,0,0" Grid.Row="3" Canvas.ZIndex="0"/>
409409

410-
<GridView SelectionChanged="FileList_SelectionChanged" Name="FileList" Margin="24,24,24,0" SelectionMode="Extended" ItemsSource="{x:Bind viewModelInstance.FilesAndFolders}" VerticalContentAlignment="Stretch" animations:ReorderGridAnimation.Duration="300">
410+
<GridView SelectionChanged="FileList_SelectionChanged" Name="FileList" Margin="24,24,24,0" SelectionMode="Extended" ItemsSource="{x:Bind viewModelInstance.FilesAndFolders}" VerticalContentAlignment="Stretch">
411411
<GridView.ItemContainerStyle>
412412
<Style TargetType="GridViewItem">
413413
<Setter Property="ContextFlyout">
414414
<Setter.Value>
415415
<MenuFlyout Opened="RightClickContextMenu_Opened" x:Name="RightClickContextMenu" MenuFlyoutPresenterStyle="{StaticResource MenuFlyoutFluentThemeResources}">
416-
<MenuFlyout.Items>
417-
<MenuFlyoutItem Click="OpenItem_Click" Text="Open With..." Name="OpenItem">
418-
<MenuFlyoutItem.Icon>
419-
<FontIcon Glyph="&#xE7AC;"/>
420-
</MenuFlyoutItem.Icon>
421-
</MenuFlyoutItem>
422-
<MenuFlyoutItem Click="ShareItem_Click" Text="Share" Name="ShareItem">
423-
<MenuFlyoutItem.Icon>
424-
<FontIcon Glyph="&#xE72D;"/>
425-
</MenuFlyoutItem.Icon>
416+
<MenuFlyout.Items>
417+
<MenuFlyoutItem Click="OpenItem_Click" Text="Open With..." Name="OpenItem">
418+
<MenuFlyoutItem.Icon>
419+
<FontIcon Glyph="&#xE7AC;"/>
420+
</MenuFlyoutItem.Icon>
421+
</MenuFlyoutItem>
422+
<MenuFlyoutItem Click="ShareItem_Click" Text="Share" Name="ShareItem">
423+
<MenuFlyoutItem.Icon>
424+
<FontIcon Glyph="&#xE72D;"/>
425+
</MenuFlyoutItem.Icon>
426426
<MenuFlyoutItem.KeyboardAccelerators>
427427
<KeyboardAccelerator Modifiers="Control" Key="S"/>
428428
</MenuFlyoutItem.KeyboardAccelerators>
429429
</MenuFlyoutItem>
430-
<MenuFlyoutSeparator/>
431-
<MenuFlyoutItem Click="DeleteItem_Click" Text="Delete" Name="DeleteItem" >
432-
<MenuFlyoutItem.Icon>
433-
<FontIcon Glyph="&#xE74D;"/>
434-
</MenuFlyoutItem.Icon>
430+
<MenuFlyoutSeparator/>
431+
<MenuFlyoutItem Click="DeleteItem_Click" Text="Delete" Name="DeleteItem" >
432+
<MenuFlyoutItem.Icon>
433+
<FontIcon Glyph="&#xE74D;"/>
434+
</MenuFlyoutItem.Icon>
435435
<MenuFlyoutItem.KeyboardAccelerators>
436436
<KeyboardAccelerator Key="Delete"/>
437437
</MenuFlyoutItem.KeyboardAccelerators>
438438
</MenuFlyoutItem>
439-
<MenuFlyoutItem Click="RenameItem_Click" Text="Rename" Name="RenameItem" >
440-
<MenuFlyoutItem.Icon>
441-
<FontIcon Glyph="&#xE8AC;"/>
442-
</MenuFlyoutItem.Icon>
439+
<MenuFlyoutItem Click="RenameItem_Click" Text="Rename" Name="RenameItem" >
440+
<MenuFlyoutItem.Icon>
441+
<FontIcon Glyph="&#xE8AC;"/>
442+
</MenuFlyoutItem.Icon>
443443
<MenuFlyoutItem.KeyboardAccelerators>
444444
<KeyboardAccelerator Key="F2"/>
445445
</MenuFlyoutItem.KeyboardAccelerators>
446446
</MenuFlyoutItem>
447-
<MenuFlyoutSeparator/>
448-
<MenuFlyoutItem Click="CutItem_Click" Text="Cut" Name="CutItem" >
449-
<MenuFlyoutItem.Icon>
450-
<FontIcon Glyph="&#xE8C6;"/>
451-
</MenuFlyoutItem.Icon>
447+
<MenuFlyoutSeparator/>
448+
<MenuFlyoutItem Click="CutItem_Click" Text="Cut" Name="CutItem" >
449+
<MenuFlyoutItem.Icon>
450+
<FontIcon Glyph="&#xE8C6;"/>
451+
</MenuFlyoutItem.Icon>
452452
<MenuFlyoutItem.KeyboardAccelerators>
453453
<KeyboardAccelerator Modifiers="Control" Key="X"/>
454454
</MenuFlyoutItem.KeyboardAccelerators>
@@ -466,16 +466,14 @@
466466
<MenuFlyoutItem.Icon>
467467
<SymbolIcon Symbol="Pin"/>
468468
</MenuFlyoutItem.Icon>
469-
470469
</MenuFlyoutItem>
471470
<MenuFlyoutItem Click="PropertiesItem_Click" Text="Properties" Name="PropertiesItem">
472-
<MenuFlyoutItem.Icon>
473-
<FontIcon Glyph="&#xE946;"/>
474-
</MenuFlyoutItem.Icon>
475-
</MenuFlyoutItem>
476-
</MenuFlyout.Items>
477-
478-
</MenuFlyout>
471+
<MenuFlyoutItem.Icon>
472+
<FontIcon Glyph="&#xE946;"/>
473+
</MenuFlyoutItem.Icon>
474+
</MenuFlyoutItem>
475+
</MenuFlyout.Items>
476+
</MenuFlyout>
479477
</Setter.Value>
480478
</Setter>
481479
</Style>

0 commit comments

Comments
 (0)