XAML-Map-Control/SampleApps/SampleApplication/ViewportPositionToVisibilityConverter.cs
2012-10-25 08:42:51 +02:00

36 lines
1.1 KiB
C#

using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using MapControl;
namespace SampleApplication
{
public class ViewportPositionToVisibilityConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
Visibility visibility = Visibility.Hidden;
if (values.Length == 2 && values[0] is Map && values[1] is Point? && ((Point?)values[1]).HasValue)
{
Map parentMap = (Map)values[0];
Point position = ((Point?)values[1]).Value;
if (position.X >= 0d && position.X <= parentMap.ActualWidth &&
position.Y >= 0d && position.Y <= parentMap.ActualHeight)
{
visibility = Visibility.Visible;
}
}
return visibility;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
}