Supponendo di aver capito correttamente cosa vuoi, credo che la risposta breve sia: scusa, ma non è possibile aggiungere una casella di informazioni in stile Google Maps a una puntina con solo XAML. Tuttavia, cercherò di aiutare se posso.
Disclaimer: Ho giocato con il controllo di Bing Maps per Silverlight, quindi spero che questo sia applicabile anche alla versione WPF del controllo.
Immagino che tu non voglia usare la ToolTip incorporata perché vuoi che appaia diversa (cioè non solo una casella gialla con testo) o perché vuoi che non scompaia quando l'utente sposta la il mouse via.
Se si desidera che sia diverso, posso offrire quanto segue. Quando ho specificato un modello per i miei simboli, sono andato avanti e ho utilizzato una ToolTip in templato e ho permesso all'utente di fare clic sulla puntina per ottenere maggiori informazioni.
Ecco il modello di descrizione comandi, definito come uno StaticResource, che ovviamente potrebbe contenere tutto quello che vuoi:
<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>
E qui è dove ho usato:
<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>
Poi Gestirei quando l'utente ha fatto clic sulla puntina da disegno per portarli in un'area dettagli.
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.
}
Tuttavia, immagino che si desidera mantenere la descrizione comandi dallo scomparire, in modo che l'utente può fare clic sui controlli al suo interno. Sfortunatamente, non sono sicuro che ci sia un modo semplice per farlo. Potrebbe essere necessario definire il proprio controllo personalizzato, che ovviamente richiederebbe un codice C#/VB.
Forse questo nuovo controllo potrebbe derivare da Spillo, e potrebbe mostrare il contenuto della casella di informazioni al passaggio del mouse e/o fare clic. È possibile utilizzare VisualStateManager per mantenere la maggior parte del codice in XAML. Il C#/VB dovrebbe solo fornire una proprietà di dipendenza per il contenuto e alcuni override per la transizione tra gli stati visivi ai tempi corretti.
Spero che sia almeno un po 'utile!
Questo spiega molto, grazie! Ho continuato a cercare e provare tutti i tipi di cose per rendere questa infobox solo nel WPF .. Hahah grazie per le informazioni! Il metodo sembra il modo migliore per andare. Grazie! :) – doc92