15,6 → 15,12 |
GMapMarker Marker; |
MainWindow MainWindow; |
int _type = 0; |
public event positionChangedEventHandler positionChanged; |
public delegate void positionChangedEventHandler(CustomMarkerWP wp); |
public event newPositionEventHandler newPosition; |
public delegate void newPositionEventHandler(CustomMarkerWP wp); |
public event mouseCapturedEventHandler mouseCaptured; |
public delegate void mouseCapturedEventHandler(bool isCaptured); |
|
public CustomMarkerWP(MainWindow window, GMapMarker marker, string title, int type) |
{ |
28,13 → 34,18 |
//Label = new Label(); |
|
//this.Unloaded += new RoutedEventHandler(CustomMarkerWP_Unloaded); |
//this.Loaded += new RoutedEventHandler(CustomMarkerWP_Loaded); |
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); |
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); |
StylusEnter += CustomMarkerWP_StylusEnter; |
StylusLeave += CustomMarkerWP_StylusLeave; |
StylusDown += CustomMarkerWP_StylusDown; |
StylusMove += CustomMarkerWP_StylusMove; |
StylusUp += CustomMarkerWP_StylusUp; |
|
//Popup.Placement = PlacementMode.Mouse; |
//{ |
51,6 → 62,46 |
setType(); |
} |
|
private void CustomMarkerWP_StylusUp(object sender, StylusEventArgs e) |
{ |
if (IsStylusCaptured) |
{ |
Stylus.Capture(null); |
newPosition(this); |
mouseCaptured(false); |
} |
} |
|
private void CustomMarkerWP_StylusMove(object sender, StylusEventArgs e) |
{ |
if (IsStylusCaptured) |
{ |
Point p = e.GetPosition(MainWindow.MainMap); |
Marker.Position = MainWindow.MainMap.FromLocalToLatLng((int)(p.X), (int)(p.Y)); |
if (positionChanged != null) |
positionChanged(this); |
} |
} |
|
private void CustomMarkerWP_StylusDown(object sender, StylusDownEventArgs e) |
{ |
if (!IsStylusCaptured) |
{ |
Stylus.Capture(this); |
mouseCaptured(true); |
} |
} |
|
private void CustomMarkerWP_StylusLeave(object sender, StylusEventArgs e) |
{ |
Marker.ZIndex -= 10000; |
} |
|
private void CustomMarkerWP_StylusEnter(object sender, StylusEventArgs e) |
{ |
Marker.ZIndex += 10000; |
} |
|
void setType() |
{ |
if (_type == 0) |
86,11 → 137,16 |
//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); |
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); |
StylusEnter -= CustomMarkerWP_StylusEnter; |
StylusLeave -= CustomMarkerWP_StylusLeave; |
StylusDown -= CustomMarkerWP_StylusDown; |
StylusMove -= CustomMarkerWP_StylusMove; |
StylusUp -= CustomMarkerWP_StylusUp; |
|
Marker.Shape = null; |
//icon.Source = null; |
170,27 → 226,32 |
|
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)); |
//} |
if (e.LeftButton == MouseButtonState.Pressed && IsMouseCaptured) |
{ |
Point p = e.GetPosition(MainWindow.MainMap); |
Marker.Position = MainWindow.MainMap.FromLocalToLatLng((int)(p.X), (int)(p.Y)); |
if(positionChanged != null) |
positionChanged(this); |
} |
} |
|
void CustomMarkerWP_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) |
{ |
//if (!IsMouseCaptured) |
//{ |
// Mouse.Capture(this); |
//} |
if (!IsMouseCaptured) |
{ |
Mouse.Capture(this); |
mouseCaptured(true); |
} |
} |
|
void CustomMarkerWP_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) |
{ |
//if (IsMouseCaptured) |
//{ |
// Mouse.Capture(null); |
//} |
if (IsMouseCaptured) |
{ |
Mouse.Capture(null); |
newPosition(this); |
mouseCaptured(false); |
} |
} |
|
void MarkerControl_MouseLeave(object sender, MouseEventArgs e) |