2017-01-28 11 views
0

私はUWP MapControlを使用しています。UWP MapControl MenuFlyoutは表示されません

このXAMLの問題は、マップ上で右クリックするとフライアウトメニューが表示されないことです。

<Maps:MapControl Name="MapaElementov" HorizontalAlignment="Left" Margin="10,47,0,0" VerticalAlignment="Top" Height="663" Width="1260" MapServiceToken="some-code" 
         ZoomLevel="9" RotateInteractionMode="Disabled" TiltInteractionMode="Disabled"> 
     <Maps:MapControl.ContextFlyout> 
      <MenuFlyout> 

      </MenuFlyout> 
     </Maps:MapControl.ContextFlyout> 
    </Maps:MapControl> 

私はここで間違っていますか?

答えて

1

あなたのサンプルを実行しようとすると、コンパイルされません。私はContextFlyoutとライン上を向いこのエラーメッセージが表示されます。

The XAML Binary Format (XBF) generator reported syntax error '0x09c5'

おそらくのMapControlはContextFlyoutを持つことが許されていませんか?だから、その代わりに、あなたはこのコードで同じ結果を得ることができます。

<maps:MapControl Name="MapaElementov" HorizontalAlignment="Left" Margin="10,47,0,0" VerticalAlignment="Top" Height="663" Width="1260" MapServiceToken="some-code" 
       ZoomLevel="9" RotateInteractionMode="Disabled" TiltInteractionMode="Disabled" MapRightTapped="MapaElementov_MapRightTapped"> 

    <FlyoutBase.AttachedFlyout> 
     <MenuFlyout x:Name="MapFlyout"> 
      <MenuFlyoutItem Text="Item 1"/> 
      <MenuFlyoutItem Text="Item 2"/> 
     </MenuFlyout> 
    </FlyoutBase.AttachedFlyout> 
</maps:MapControl> 

...

private void MapaElementov_MapRightTapped(MapControl sender, MapRightTappedEventArgs args) 
{ 
    MapFlyout.ShowAt(sender, new Point(args.Position.X, args.Position.Y)); 
} 

を私はあなたがしたい場合にも簡単に、独自の添付プロパティにこれをパックすることができると思います。

EDIT: apparantely、ContextFlyoutを記念アップデートで導入されたので、私は分を設定し、それを実行するために14393を構築するためのバージョンを対象としなければならなかった、ので、私はあなたの例をコンパイルすることができませんでした。

+1

参照:[ボタンのみが自動的にフライアウトを表示する](http://stackoverflow.com/a/24061894/2681948)、フライアウトを* FrameworkElement *に添付すると、手動で表示する必要があります。 +1 – Romasz

+0

ありがとうございました! –

関連する問題