You can specify a custom pop-up location by setting the Placement property to Custom. This can be done with the following code snippets.
[XAML]
<Popup Name="myCustomPopup"
PlacementTarget ="{Binding ElementName=myGridLayout}"
Placement="Custom">
<TextBlock Height="50" Width="150"
Background="LightGray"
TextWrapping="Wrap">Custom popup position demo</TextBlock>
</Popup>
[C#]
public CustomPopupPlacement[] placementForPopup(Size popupSize,
Size targetSize,
Point offset)
{
CustomPopupPlacement customPlacement1 =
new CustomPopupPlacement(new Point(-40, 90), PopupPrimaryAxis.Vertical);
CustomPopupPlacement customPlacement2 =
new CustomPopupPlacement(new Point(20, 30), PopupPrimaryAxis.Horizontal);
CustomPopupPlacement[] customPlacements =
new CustomPopupPlacement[] { customPlacement1 , customPlacement2 };
return customPlacements ;
}
[C#]
myCustomPopup.CustomPopupPlacementCallback =
new CustomPopupPlacementCallback(placementForPopup);
Reference link: https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/how-to-specify-a-custom-popup-position
Permalink