private void ClearUnVisibility() { int vOffset = (int)_scrollViewer.VerticalOffset; int hOffset = (int)_scrollViewer.HorizontalOffset; int aH = (int)_scrollViewer.ActualHeight; int aW = (int)_scrollViewer.ActualWidth; var rowFirst = vOffset / 256; var colFirst = hOffset / 256; var rowLast = (aH + vOffset) / 256; var colLast = (aW + hOffset) / 256; int rowCol = (int)(_grid.Height / 256); if (rowLast < rowCol) { rowLast = rowLast + 1; } else { rowLast = rowCol; } if (colLast < rowCol) { colLast = colLast + 1; } else { colLast = rowCol; } _grid.Children.Clear(); for (int i = rowFirst; i < rowLast; i++) { for (int j = colFirst; j < colLast; j++) { Image tb = new Image(); var path = "MapWorld.MapWorld.Size" + _levelOfDetail + ".os_" + j + "_" + i + "_" + _levelOfDetail + ".png"; tb.Source = _baseA.GetPartMap(path); // tb.Visibility = Visibility.Hidden; Grid.SetRow(tb, i); Grid.SetColumn(tb, j); _grid.Children.Add(tb); } } }