bing マップを使用していますが、ツールチップの表示に問題があります。
PushPin モデルがあるので、それにバインドできます。
public class PushpinModel : DependencyObject, INotifyPropertyChanged
{
private double _latitude;
private double _longitude;
private string _description;
private string _title;
public double Latitude
{
get
{
return _latitude;
}
set
{
if (_latitude != value)
{
_latitude = value;
NotifyPropertyChanged("Latitude");
}
}
}
public double Longitude
{
get
{
return _longitude;
}
set
{
if (_longitude != value)
{
_longitude = value;
NotifyPropertyChanged("Longitude");
}
}
}
public string Description
{
get
{
return _description;
}
set
{
if (_description != value)
{
_description = value;
NotifyPropertyChanged("Description");
}
}
}
public string Title
{
get
{
return _title;
}
set
{
if (_title != value)
{
_title = value;
NotifyPropertyChanged("Title");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
PushPinViewModel があります (MVVM ですべてを実行したいのですが、今のところコマンドを使用していないため、コード ビハインドに記述します)。
プライベート ObservableCollection _pushpins = new ObservableCollection();
public ObservableCollection<PushpinModel> Pushpins
{
get
{
return _pushpins;
}
}
メインページ:
public sealed partial class MainPage : Page
{
PushpinViewModel pvm;
public MainPage()
{
this.InitializeComponent();
pvm = new PushpinViewModel();
map.DataContext = pvm;
}
...
XAML で:
<Page.Resources>
<Style TargetType="ToolTip">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border CornerRadius="5">
<Border.Background>
<SolidColorBrush Color="Black" Opacity="0.5"/>
</Border.Background>
<ContentPresenter Margin="5">
<ContentPresenter.Content>
<StackPanel Margin="5" MaxWidth="200">
<TextBlock Text="{Binding Title}" FontWeight="Bold" FontSize="16" Foreground="White"/>
<TextBlock Text="{Binding Description}" Foreground="White" TextWrapping="Wrap"/>
</StackPanel>
</ContentPresenter.Content>
</ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
場所へのバインドなどのコードを追加します (正常に動作します)。しかし、タップ時のツールチップの問題。
private void Pushpin_Tap(object sender, TappedRoutedEventArgs e)
{
//Just hard coded for testing
PushpinModel tooltipPin = new PushpinModel();
tooltipPin.Latitude = 26.820553;
tooltipPin.Longitude = 30.802498000000014;
tooltipPin.Title = "Pin 2";
tooltipPin.Description = "This is an example of a custom infobox that is created using a tooltip and a user control.";
pvm.AddPushpin(tooltipPin);
ToolTipService.SetToolTip(tooltipPin, new ToolTip()
{
//What to do here?
//DataContext = tooltipPin
});
}
このコードは画鋲を作成してマップに配置しますが、ツールチップは表示されません。誰か助けてくれませんか?
どうもありがとう !!!