Ne demek istediğinizi doğru anladığımı varsayalım, kısa cevabın: Üzgünüz, ancak sadece XAML ile bir raptiye bir Google-Maps tarzı bilgi kutusu eklemek mümkün değildir. Ancak, yapabiliyorsam yardım etmeye çalışacağım.
Yasal Uyarı: Silverlight için Bing Maps denetimi ile oynuyordum, bu nedenle bu, kontrolün WPF sürümüne de uygulanabilir.
Yerleşik Araç İpucu'nu kullanmak istemediğinizi sanıyorum çünkü bunun farklı görünmesini (örneğin metinle birlikte sadece sarı bir kutu) ya da kullanıcı taşındığında kaybolmasını istemediğinizi düşünün. fareyi uzağa
Sadece farklı görünmesini istiyorsanız, aşağıdakileri sunabilirim. Pushpins için bir şablon belirlediğimde, devam ettim ve yeniden ayarlanmış bir ToolTip kullandı ve daha fazla bilgi almak için kullanıcının raptiyeyi tıklamasına izin verdim. İşte
istediğiniz her şeyi içerebilir tabii bir StaticResource olarak tanımlanan araç ipucu şablon verilmiştir:
<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>
Ve burada kullandım nerede: Sonra
<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>
Kullanıcı bir ayrıntı alanına götürmek için raptiye tıkladığında ben idare ederdim.
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.
}
Ancak, kullanıcı içine kontroller tıklayın, böylece kaybolan gelen araç ipucu tutmak istiyorum düşünün. Ne yazık ki, bunu yapmanın basit bir yolu olduğundan emin değilim. Kendi özel kontrolünüzü tanımlamanız gerekebilir, elbette bazı C#/VB kodlarını gerektirir.
Belki de bu yeni denetim Pushpin'den türetilebilir ve bilgi kutusu içeriğini mouse-over üzerinde ve/veya tıklatarak gösterebilir. Kodun çoğunu XAML'de tutmak için VisualStateManager'ı kullanabilirsiniz. C#/VB yalnızca içerik için bir bağımlılık özelliği sağlamak zorunda kalacak ve bazı durumlarda görsel durumlar arasında doğru zamanlarda geçiş yapmak için bazı geçersiz kılmalar olacaktır.
Umarım en azından biraz yardımcı olur!
Bu çok açıklar, teşekkürler! Bu bilgi kutusunu sadece WPF'de yapmak için her türlü şeyi aramaya ve denemeye devam ettim .. Hahah bilgi için teşekkürler! Yöntemin, gitmenin en iyi yolu gibi görünüyorsun. Teşekkür ederim! :) – doc92