# WPF/C-Sharp- CustomPopupOverly on mouse right click hovering over a feature

**URL:** <https://community.thinkgeo.com/t/wpf-c-sharp-custompopupoverly-on-mouse-right-click-hovering-over-a-feature/3261>\
**Category:** WPF\
**Created:** [July 27, 2012, 4:47pm UTC](https://community.thinkgeo.com/t/wpf-c-sharp-custompopupoverly-on-mouse-right-click-hovering-over-a-feature/3261 "2012-07-27T16:47:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![GS1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/4491bb/32.png) [@GS1](https://community.thinkgeo.com/u/GS1)\
**Post date:** [July 27, 2012, 4:47pm UTC](https://community.thinkgeo.com/t/wpf-c-sharp-custompopupoverly-on-mouse-right-click-hovering-over-a-feature/3261/1 "2012-07-27T16:47:42Z")

</div>

&nbsp;Hello&nbsp;ThinkGeo,

&nbsp;I&nbsp;have&nbsp;a&nbsp;custom&nbsp;popupoverlay&nbsp;and&nbsp;in&nbsp;the&nbsp;main&nbsp;map...Using&nbsp;InmemoryFeatureOverlay....I&nbsp;have&nbsp;a&nbsp;three&nbsp;EllipseShape(with&nbsp;radius&nbsp;set&nbsp;to&nbsp;1.25)&nbsp;features&nbsp;&nbsp;plotted&nbsp;on&nbsp;&nbsp;a&nbsp;map&nbsp;.&nbsp;For&nbsp;&nbsp;displaying&nbsp;popup,&nbsp;I'm&nbsp;using&nbsp;&nbsp;EditInteractiveOverlay.

Question:&nbsp;How&nbsp;can&nbsp;I&nbsp;prevent&nbsp;displaying&nbsp;popup,&nbsp;if&nbsp;users&nbsp;click&nbsp;outside&nbsp;of&nbsp;a&nbsp;&nbsp;feature&nbsp;???For&nbsp;Example:&nbsp;Irrespective&nbsp;of&nbsp;zoom&nbsp;levels&nbsp;and/or&nbsp;radius&nbsp;.......&nbsp;I&nbsp;want&nbsp;to&nbsp;display&nbsp;popup&nbsp;when&nbsp;the&nbsp;user&nbsp;right&nbsp;clicks&nbsp;on&nbsp;EllipseShape&nbsp;feature&nbsp;only...&nbsp;based&nbsp;on&nbsp;certain&nbsp;tolerance&nbsp;ratio.&nbsp;Is&nbsp;this&nbsp;possible??

&nbsp;Here&nbsp;is&nbsp;the&nbsp;code&nbsp;that&nbsp;I'm&nbsp;currently&nbsp;using&nbsp;to&nbsp;find&nbsp;nearest&nbsp;features&nbsp;and&nbsp;but&nbsp;i&nbsp;couldn't&nbsp;be&nbsp;able&nbsp;to&nbsp;find&nbsp;exact&nbsp;pattern&nbsp;&nbsp;to&nbsp;figure&nbsp;it&nbsp;out&nbsp;that&nbsp;fits&nbsp;my&nbsp;requirement.

&nbsp;

EditInteractiveOverlay&nbsp;test;

&nbsp;test.MapMouseDown&nbsp;+=&nbsp;new&nbsp;EventHandler\<mapmousedowninteractiveoverlayeventargs\>(\_MapMouseDown);\</mapmousedowninteractiveoverlayeventargs\>

&nbsp;

&nbsp;&nbsp;private&nbsp;void&nbsp;\_MapMouseDown(object&nbsp;sender,

&nbsp;MapMouseDownInteractiveOverlayEventArgs&nbsp;e)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InteractionArguments&nbsp;InteractionArgs&nbsp;=&nbsp;e.InteractionArguments;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PointShape&nbsp;ptShape&nbsp;=&nbsp;new&nbsp;PointShape(InteractionArgs.WorldX,&nbsp;InteractionArgs.WorldY);

&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection\<feature\>&nbsp;selectedWorkArea&nbsp;=&nbsp;null;\</feature\>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;customRegInMemFeatureLayer.Open();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lock&nbsp;(&nbsp;customRegInMemFeatureLayer&nbsp;)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{

&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectedFeature&nbsp;=&nbsp;&nbsp;customRegInMemFeatureLayer&nbsp;.QueryTools.GetFeaturesNearestTo(ptShape,

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GeographyUnit.DecimalDegree,&nbsp;1,&nbsp;ReturningColumnsType.AllColumns);

&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;disStop&nbsp;=&nbsp;Double.MaxValue;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;selectedFeature&nbsp;&nbsp;.Count&nbsp;\>=&nbsp;1)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectedFeature&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;customRegInMemFeatureLayer&nbsp;.QueryTools.GetFeaturesNearestTo(ptShape,

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GeographyUnit.DecimalDegree,&nbsp;1,&nbsp;ReturningColumnsType.AllColumns);

&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;selectedFeature&nbsp;&nbsp;.Count&nbsp;==&nbsp;1)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BaseShape&nbsp;baseShape&nbsp;=&nbsp;&nbsp;selectedFeature&nbsp;&nbsp;[0].GetShape();

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PointShape&nbsp;ptStopShape&nbsp;=&nbsp;baseShape&nbsp;as&nbsp;PointShape;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(null&nbsp;!=&nbsp;ptStopShape)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disStop&nbsp;=&nbsp;ptShape.GetDistanceTo(ptStopShape,&nbsp;GeographyUnit.DecimalDegree,&nbsp;DistanceUnit.Meter);

&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(InteractionArgs.MouseButton&nbsp;==&nbsp;MapMouseButton.Right)&nbsp;//&nbsp;&&&nbsp;Keyboard.IsKeyDown(Key.LeftAlt))

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{

&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Display&nbsp;custom&nbsp;popup&nbsp;information

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;

else

{

//Hide&nbsp;the&nbsp;popup

}

&nbsp;

}

&nbsp;

Appreciate&nbsp;early&nbsp;reply!

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![GS1](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/g/4491bb/32.png) [@GS1](https://community.thinkgeo.com/u/GS1)\
**Post date:** [July 31, 2012, 12:02am UTC](https://community.thinkgeo.com/t/wpf-c-sharp-custompopupoverly-on-mouse-right-click-hovering-over-a-feature/3261/2 "2012-07-31T00:02:52Z")

</div>

&nbsp;&nbsp;Hello&nbsp;ThinkGeo&nbsp;,

&nbsp;

Any&nbsp;update&nbsp;on&nbsp;this&nbsp;please??

---

<div class="post-metadata">

**Author:** ![Edgar](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/e/b487fb/32.png) [@Edgar](https://community.thinkgeo.com/u/Edgar)\
**Post date:** [August 5, 2012, 8:38pm UTC](https://community.thinkgeo.com/t/wpf-c-sharp-custompopupoverly-on-mouse-right-click-hovering-over-a-feature/3261/3 "2012-08-05T20:38:05Z")

</div>

&nbsp;Hi&nbsp;GS,

&nbsp;  
Sorry&nbsp;for&nbsp;the&nbsp;long&nbsp;time&nbsp;waiting,&nbsp;for&nbsp;your&nbsp;requirement,&nbsp;you&nbsp;can&nbsp;try&nbsp;the&nbsp;code&nbsp;below:  
&nbsp;  
`Collection<Feature> features = customRegInMemFeatureLayer .QueryTools.GetFeaturesContaining(ptShape, ReturningColumnsType.AllColumns)`  
&nbsp;  
Hope&nbsp;it&nbsp;helps,  
&nbsp;  
Edgar  
&nbsp;
