0,0 → 1,169 |
using System.Windows; |
using System.Windows.Controls; |
using System.Windows.Controls.Primitives; |
using System.Windows.Input; |
using System.Windows.Media; |
using GMap.NET.WindowsPresentation; |
using System.Diagnostics; |
|
namespace MKLiveView.GMapCustomMarkers |
{ |
public partial class CustomMarkerWP |
{ |
//Popup Popup; |
//Label Label; |
GMapMarker Marker; |
MainWindow MainWindow; |
int _type = 0; |
|
public CustomMarkerWP(MainWindow window, GMapMarker marker, string title, int type) |
{ |
this.InitializeComponent(); |
|
this.MainWindow = window; |
this.Marker = marker; |
_type = type; |
|
//Popup = new Popup(); |
//Label = new Label(); |
|
//this.Unloaded += new RoutedEventHandler(CustomMarkerWP_Unloaded); |
//this.Loaded += new RoutedEventHandler(CustomMarkerWP_Loaded); |
//this.SizeChanged += new SizeChangedEventHandler(CustomMarkerWP_SizeChanged); |
//this.MouseEnter += new MouseEventHandler(MarkerControl_MouseEnter); |
//this.MouseLeave += new MouseEventHandler(MarkerControl_MouseLeave); |
//this.MouseMove += new MouseEventHandler(CustomMarkerWP_MouseMove); |
//this.MouseLeftButtonUp += new MouseButtonEventHandler(CustomMarkerWP_MouseLeftButtonUp); |
//this.MouseLeftButtonDown += new MouseButtonEventHandler(CustomMarkerWP_MouseLeftButtonDown); |
|
//Popup.Placement = PlacementMode.Mouse; |
//{ |
// Label.Background = Brushes.Blue; |
// Label.Foreground = Brushes.White; |
// Label.BorderBrush = Brushes.WhiteSmoke; |
// Label.BorderThickness = new Thickness(2); |
// Label.Padding = new Thickness(5); |
// Label.FontSize = 22; |
// Label.Content = title; |
//} |
//Popup.Child = Label; |
text.Text = title; |
} |
|
void CustomMarkerWP_Loaded(object sender, RoutedEventArgs e) |
{ |
//if (icon.Source.CanFreeze) |
//{ |
// icon.Source.Freeze(); |
//} |
} |
|
void CustomMarkerWP_Unloaded(object sender, RoutedEventArgs e) |
{ |
//this.Unloaded -= new RoutedEventHandler(CustomMarkerWP_Unloaded); |
//this.Loaded -= new RoutedEventHandler(CustomMarkerWP_Loaded); |
//this.SizeChanged -= new SizeChangedEventHandler(CustomMarkerWP_SizeChanged); |
//this.MouseEnter -= new MouseEventHandler(MarkerControl_MouseEnter); |
//this.MouseLeave -= new MouseEventHandler(MarkerControl_MouseLeave); |
//this.MouseMove -= new MouseEventHandler(CustomMarkerWP_MouseMove); |
//this.MouseLeftButtonUp -= new MouseButtonEventHandler(CustomMarkerWP_MouseLeftButtonUp); |
//this.MouseLeftButtonDown -= new MouseButtonEventHandler(CustomMarkerWP_MouseLeftButtonDown); |
|
Marker.Shape = null; |
//icon.Source = null; |
//icon = null; |
//Popup = null; |
//Label = null; |
} |
public string WPText |
{ |
get { return text.Text; } |
set { text.Text = value; } |
} |
public int WPType |
{ |
get { return _type; } |
set { _type = value; } |
} |
|
public void setColor(string sColor) |
{ |
RadialGradientBrush rgb = new RadialGradientBrush(); |
GradientStop gs0 = new GradientStop(Color.FromArgb(0xFF, 0xFD, 0x00, 0x00),0), gs1 = new GradientStop(Color.FromArgb(0xFF, 0x66, 0x1B, 0x1B),1); |
switch (sColor) |
{ |
case "red": |
ellipse.Stroke = new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0x3A, 0x00)); |
gs0 = new GradientStop(Color.FromArgb(0xFF, 0xFD, 0x00, 0x00),0); |
gs1 = new GradientStop(Color.FromArgb(0xFF, 0x66, 0x1B, 0x1B),1); |
break; |
case "green": |
ellipse.Stroke = new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0xFF, 0x00)); |
gs0 = new GradientStop(Color.FromArgb(0xFF, 0x00, 0xFD, 0x50),0); |
gs1 = new GradientStop(Color.FromArgb(0xFF, 0x66, 0x2F, 0x1B),1); |
break; |
case "yellow": |
ellipse.Stroke = new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0xFF, 0x00)); |
gs0 = new GradientStop(Color.FromArgb(0xFF, 0xFD, 0xFD, 0x00),0); |
gs1 = new GradientStop(Color.FromArgb(0xFF, 0x66, 0x5F, 0x1B),1); |
break; |
case "blue": |
ellipse.Stroke = new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0xFF, 0xFF)); |
gs0 = new GradientStop(Color.FromArgb(0xFF, 0x00, 0xDB, 0xFD),0); |
gs1 = new GradientStop(Color.FromArgb(0xFF, 0x00, 0x66, 0x5C),1); |
break; |
case "pink": |
ellipse.Stroke = new SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0x00, 0xFF)); |
gs0 = new GradientStop(Color.FromArgb(0xFF, 0xFD, 0x00, 0xCF),0); |
gs1 = new GradientStop(Color.FromArgb(0xFF, 0x66, 0x00, 0x66),1); |
break; |
} |
rgb.GradientStops.Add(gs0); |
rgb.GradientStops.Add(gs1); |
ellipse.Fill = rgb; |
} |
|
void CustomMarkerWP_SizeChanged(object sender, SizeChangedEventArgs e) |
{ |
// Marker.Offset = new Point(-e.NewSize.Width / 4, -e.NewSize.Height /2); |
} |
|
void CustomMarkerWP_MouseMove(object sender, MouseEventArgs e) |
{ |
//if (e.LeftButton == MouseButtonState.Pressed && IsMouseCaptured) |
//{ |
// Point p = e.GetPosition(MainWindow.MainMap); |
// Marker.Position = MainWindow.MainMap.FromLocalToLatLng((int)(p.X), (int)(p.Y)); |
//} |
} |
|
void CustomMarkerWP_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) |
{ |
//if (!IsMouseCaptured) |
//{ |
// Mouse.Capture(this); |
//} |
} |
|
void CustomMarkerWP_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) |
{ |
//if (IsMouseCaptured) |
//{ |
// Mouse.Capture(null); |
//} |
} |
|
void MarkerControl_MouseLeave(object sender, MouseEventArgs e) |
{ |
Marker.ZIndex -= 10000; |
//Popup.IsOpen = false; |
} |
|
void MarkerControl_MouseEnter(object sender, MouseEventArgs e) |
{ |
Marker.ZIndex += 10000; |
//Popup.IsOpen = true; |
} |
|
} |
} |