В настоящее время я тестирую некоторые решения для карт BING в приложении WPF. У меня есть одна карта, и я помещаю на нее несколько булавок. Каждая булавка должна иметь всплывающую подсказку с изображением и текстом. Это то, чего я достиг, но дело в том, что я не знаю, как переопределить поведение всплывающей подсказки по умолчанию, в частности, я хочу отключить отображение всплывающей подсказки в MouseEnter и расцепление всплывающей подсказки в MouseLeave, что присутствует в поведении по умолчанию. Вот мой Xaml и код:
<mapItems:Map x:Name="MainMap" CredentialsProvider="my_api_key" Center="43.3216408,21.8959319" ZoomLevel="12">
<mapItems:Pushpin x:Name="pinPozoriste" Location="43.320214,21.899104" MouseDown="pin_MouseDown">
<mapItems:Pushpin.ToolTip>
<ToolTip x:Name="pozoristeTooltip">
<Grid>
<Image Source="https://visitnis.com/wp-content/uploads/2018/01/narodno-pozoriste-nis-the-national-theater-nis-1170x521.jpg" Width="426" Height="240"></Image>
<TextBlock Text="Narodno pozoriste"></TextBlock>
</Grid>
</ToolTip>
</mapItems:Pushpin.ToolTip>
</mapItems:Pushpin>
<mapItems:Pushpin x:Name="pinBubanj" Location="43.3052551,21.8702683" MouseDown="pin_MouseDown">
<mapItems:Pushpin.ToolTip>
<ToolTip x:Name="bubanjTooltip">
<Grid>
<Image Source="https://visitnis.com/wp-content/uploads/2017/09/spomenik-bubanj-bubanj-memorial-site-1170x521.jpg" Width="426" Height="240"></Image>
<TextBlock Text="Spomen park Bubanj"></TextBlock>
</Grid>
</ToolTip>
</mapItems:Pushpin.ToolTip>
</mapItems:Pushpin>
</mapItems:Map>
И код C#:
private List<ToolTip> allTooltips;
public MainWindow()
{
InitializeComponent();
allTooltips = new List<ToolTip>();
allTooltips.Add(pozoristeTooltip);
allTooltips.Add(bubanjTooltip);
}
private void pin_MouseDown(object sender, MouseButtonEventArgs e)
{
foreach(ToolTip t in allTooltips)
{
t.IsOpen = false;
}
((ToolTip)((FrameworkElement)sender).ToolTip).IsOpen = !((ToolTip)((FrameworkElement)sender).ToolTip).IsOpen;
}
private void closeActivePin(object sender, MouseButtonEventArgs e)
{
((ToolTip)((FrameworkElement)sender).ToolTip).IsOpen = false;
}