2014-04-16 5 views
2

Salut j'ai ajouté un polygone à une carte en utilisant:Vérifiez si polygone a été cliqué

//Creating a Polygon 
Polygon MyPolygon = new Polygon(); 
MyPolygon.Points.Add(new Point(0, 0)); 
MyPolygon.Points.Add(new Point(95, 0)); 
MyPolygon.Points.Add(new Point(95, 35)); 
MyPolygon.Points.Add(new Point(10, 35)); 
MyPolygon.Points.Add(new Point(0, 75)); // 

MyPolygon.Stroke = new SolidColorBrush(Colors.Black); 
MyPolygon.Fill = new SolidColorBrush(Colors.Black); 

//Creating a MapOverlay and adding the Grid to it. 
MapOverlay MyOverlay = new MapOverlay(); 
MyOverlay.Content = MyPolygon; 
MyOverlay.GeoCoordinate = 
new GeoCoordinate(coordinate.Latitude,  coordinate.Longitude); 
MyOverlay.PositionOrigin = new Point(0, 1.0); 

//Creating a MapLayer and adding the MapOverlay to it    
mapLayer.Add(MyOverlay); 

MyPolygon.MouseLeftButtonUp += new MouseButtonEventHandler(MyPolygon_Click); 

...

private void MyPolygon_Click(object sender, MouseEventArgs e) 
{ 
    TextBlock nametext; 
    nametext = new TextBlock { Text = "1234" };   
} 

Je dois vérifier si l'utilisateur clique sur ce polygone. Quelqu'un peut-il m'aider avec ça sil-vous-plait?

+0

Avez-vous essayé d'ajouter un MouseUp eventHandler à votre Polygon? –

+0

Oui. J'ai édité ma question pour la montrer mais rien ne se produit quand le polygone est cliqué. – user1853871

+0

Quel cadre utilisez-vous? WPF, Windows Store ou? –

Répondre

1

En supposant une application de magasin, le code suivant est un exemple rapide et sale qui réagira et ajoutera un TextBlock à l'endroit où vous cliquez ou touchez l'écran.

XAML

<Page 
    x:Class="StoreApp_PolyTest.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:StoreApp_PolyTest" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Canvas 
     Name="canvas" 
     Background="{StaticResource ApplicationPageBackgroundThemeBrush}" 
     Loaded="Canvas_Loaded"> 

    </Canvas> 
</Page> 

code derrière

using Windows.Foundation; 
using Windows.UI; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation; 
using Windows.UI.Xaml.Shapes; 

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 

namespace StoreApp_PolyTest 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a Frame. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     public MainPage() 
     { 
      this.InitializeComponent(); 

     } 

     private void Canvas_Loaded(object sender, RoutedEventArgs e) 
     { 
      Polygon MyPolygon = new Polygon(); 
      MyPolygon.Points.Add(new Point(0, 0)); 
      MyPolygon.Points.Add(new Point(95, 0)); 
      MyPolygon.Points.Add(new Point(95, 35)); 
      MyPolygon.Points.Add(new Point(10, 35)); 
      MyPolygon.Points.Add(new Point(0, 75)); // 

      MyPolygon.Stroke = new SolidColorBrush(Colors.Blue); 
      MyPolygon.Fill = new SolidColorBrush(Colors.Blue); 

      canvas.Children.Add(MyPolygon); 

      MyPolygon.PointerPressed += MyPolygon_PointerPressed; 
     } 

     void MyPolygon_PointerPressed(object sender, PointerRoutedEventArgs e) 
     { 
      TextBlock nameText = new TextBlock() {Text="1234"}; 
      var point = e.GetCurrentPoint(this); 
      Canvas.SetLeft(nameText, point.Position.X); 
      Canvas.SetTop(nameText, point.Position.Y); 
      canvas.Children.Add(nameText); 
     } 
    } 
} 
Questions connexes