XAML-Map-Control/MapControl/TileLayer.Silverlight.WinRT.cs

60 lines
1.5 KiB
C#
Raw Normal View History

// XAML Map Control - http://xamlmapcontrol.codeplex.com/
// Copyright © 2012 Clemens Fischer
// Licensed under the Microsoft Public License (Ms-PL)
#if NETFX_CORE
using Windows.Foundation;
using Windows.UI.Xaml.Controls;
#else
using System.Windows;
using System.Windows.Controls;
#endif
namespace MapControl
{
public partial class TileLayer : Panel
{
partial void Initialize()
{
RenderTransform = transform;
}
private Panel TileContainer
{
get { return Parent as Panel; }
}
private void RenderTiles()
{
Children.Clear();
foreach (var tile in tiles)
{
Children.Add(tile.Image);
}
}
protected override Size MeasureOverride(Size availableSize)
{
foreach (var tile in tiles)
{
tile.Image.Measure(availableSize);
}
return new Size();
}
protected override Size ArrangeOverride(Size finalSize)
{
foreach (var tile in tiles)
{
var tileSize = (double)(256 << (zoomLevel - tile.ZoomLevel));
tile.Image.Width = tileSize;
tile.Image.Height = tileSize;
tile.Image.Arrange(new Rect(tileSize * tile.X - 256 * grid.X, tileSize * tile.Y - 256 * grid.Y, tileSize, tileSize));
}
return finalSize;
}
}
}