Giả sử tôi hiểu chính xác những gì bạn muốn, tôi tin câu trả lời ngắn gọn là: Xin lỗi, nhưng không thể thêm hộp thông tin kiểu Google-Maps vào đinh ghim chỉ với XAML. Tuy nhiên, tôi sẽ cố gắng giúp đỡ nếu tôi có thể.
Tuyên bố từ chối trách nhiệm: Tôi đã chơi với điều khiển Bản đồ Bing cho Silverlight, vì vậy hy vọng điều này cũng sẽ áp dụng cho phiên bản WPF của điều khiển.
Tôi tưởng tượng bạn không muốn sử dụng chú giải công cụ tích hợp vì bạn muốn nó trông khác (nghĩa là không chỉ hộp màu vàng có văn bản) hoặc vì bạn muốn nó không biến mất khi người dùng di chuyển chuột đi.
Nếu bạn chỉ muốn nó trông khác, tôi có thể cung cấp những điều sau đây. Khi tôi chỉ định một mẫu cho Pushpins của mình, tôi đã tiếp tục và sử dụng Chú giải công cụ được tô điểm lại và cho phép người dùng nhấp vào đinh ghim để biết thêm thông tin.
![Bing Map with custom ToolTip](https://i.stack.imgur.com/bU4Xc.jpg)
Dưới đây là các mẫu ToolTip, định nghĩa là một StaticResource, trong đó tất nhiên có thể chứa bất cứ điều gì bạn muốn:
<Style x:Key="MyToolTipStyle" TargetType="ToolTip">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border CornerRadius="5" BorderBrush="Black" BorderThickness="2" Background="#5c87b2">
<ContentPresenter Margin="5">
<ContentPresenter.Content>
<StackPanel Margin="5" MaxWidth="400">
<TextBlock Text="{Binding Name}" FontWeight="Bold" FontSize="16" Foreground="White" TextWrapping="Wrap"/>
<TextBlock Text="{Binding Description}" Foreground="White" TextWrapping="Wrap"/>
</StackPanel>
</ContentPresenter.Content>
</ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Và đây là nơi mà tôi đã sử dụng nó:
<maps:Map>
<maps:MapItemsControl ItemsSource="{Binding SearchResultsManager.Items}">
<maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<maps:Pushpin Location="{Binding Location}" Cursor="Hand" MouseLeftButtonUp="Pushpin_MouseLeftButtonUp">
<ToolTipService.ToolTip>
<ToolTip Style="{StaticResource MyToolTipStyle}" />
</ToolTipService.ToolTip>
</maps:Pushpin>
</DataTemplate>
</maps:MapItemsControl.ItemTemplate>
</maps:MapItemsControl>
</maps:Map>
Sau đó, Tôi sẽ xử lý khi người dùng nhấp vào đinh ghim để đưa họ đến khu vực chi tiết.
private void Pushpin_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
// Get a reference to the object that was clicked.
var clickedSearchResult = (sender as FrameworkElement).DataContext as SearchResultViewModel;
// Do something with it.
}
Tuy nhiên, tôi tưởng tượng bạn muốn giữ Chú giải công cụ biến mất để người dùng có thể nhấp vào các điều khiển bên trong nó. Thật không may, tôi không chắc chắn có một cách đơn giản để làm điều đó. Bạn có thể phải xác định điều khiển tùy chỉnh của riêng bạn, mà tất nhiên sẽ yêu cầu một số mã C#/VB.
Có lẽ điều khiển mới này có thể lấy được từ Pushpin và có thể hiển thị nội dung của hộp thông tin khi di chuột qua và/hoặc nhấp. Bạn có thể sử dụng VisualStateManager để giữ hầu hết mã trong XAML. C#/VB sẽ chỉ phải cung cấp một thuộc tính phụ thuộc cho nội dung và một số ghi đè để chuyển đổi giữa các trạng thái trực quan vào đúng thời điểm.
Tôi hy vọng đó là ít nhất một chút hữu ích!
Điều đó giải thích rất nhiều, cảm ơn bạn! Tôi tiếp tục tìm kiếm và cố gắng tất cả mọi thứ để làm cho thông tin đó chỉ trong WPF .. Hahah cảm ơn thông tin! Phương pháp của bạn dường như là cách tốt nhất để đi. Cảm ơn bạn! :) – doc92