0
我正在爲Windows 8 Metro的C#/ XAML中的新項目編碼。我試圖動態地將單元格添加到網格中。我想要3列,而不僅僅是1列,我認爲Grid會做到這一點。我使用的代碼如下。問題是,每個添加到網格的新圖像首先出現在一個地方,然後移動到另一個地方 - 或者某個地方;有很多閃爍。我的內容是動態的(在運行時確定),所以我無法在XAML中對結構進行編碼。我在XAML中唯一具有三列一行定義的網格。以編程方式向Grid添加單元格的代碼導致閃爍
StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
StorageFolderQueryResult queryResult = picturesFolder.CreateFolderQuery();
IReadOnlyList<IStorageFolder> folderList = await queryResult.GetFoldersAsync();
int row = 0, col = 0;
foreach (IStorageFolder folder in folderList)
{
IReadOnlyList<IStorageFile> fileList = await folder.GetFilesAsync();
foreach (IStorageFile file in fileList)
{
Image image = new Image();
image.Source = await LoadImageFromFileAsync(file);
image.Width = 150;
image.Height = 150;
Grid.SetColumn(image, col);
Grid.SetRow(image, row);
++col;
if (col == 3)
{
col = 0;
++row;
RowDefinition rd = new RowDefinition();
GridLength gl = new GridLength() { Value = 150 };
rd.Height = gl;
grid.RowDefinitions.Add(rd);
}
grid.Children.Add(image);
}
}
所以:我該如何擺脫閃爍?有沒有辦法在XAML中設置一個項目模板來創建三列項目?
可悲的是,我越看越這個,我認爲這是MS代碼中的一個錯誤 – AndrewS 2011-12-13 20:25:53