none
Mobile Emulator - Versatz beim Maus Klick - respektive Touch RRS feed

  • Frage

  • Moin allerseits,

    ich spiele mit einer kleinen 2D App auf dem Mobile Emulator rum, bei der ich ein Objekt auf dem Bildschirm verschiebe ( an die angeklickte / touched Koordinate ).

    Problem: je weiter ich mich von der Mitte des Bildschirmes entferne, desto mehr Versatz habe ich in der Verschiebung, mein Objekt kommt nie am Mauszeiger ( Touch Punkt ) an.

    Auf dem PC Bildschirm läuft alles präzise, im Mobile Emulator nicht, auf einem Windows Phone ( device ) ebenfalls nicht.

    Hat jemand einen Tip für mich wo ich suchen  muss ??????

    Samstag, 25. März 2017 14:39

Antworten

  • Hier mal ein Beispiel:

    XAML:

    <Grid x:Name="rootGrid" SizeChanged="rootGrid_SizeChanged">
    
            <Canvas Background="Black" x:Name="myCan" PointerPressed="myCan_PointerPressed">
                <Rectangle x:Name="rect1" Width="100" Height="100" Fill="Blue" />
            </Canvas>
    
        </Grid>

    C#:

    private void myCan_PointerPressed(object sender, PointerRoutedEventArgs e)
            {
                double x = e.GetCurrentPoint(myCan).Position.X;
                double y = e.GetCurrentPoint(myCan).Position.Y;
    
                Canvas.SetLeft(rect1, x);
                Canvas.SetTop(rect1, y);
            }


    Gruß, Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Samstag, 25. März 2017 19:17

Alle Antworten

  • Hallo Charlie,

    poste bitte noch den Code ohne den können wir dir nicht helfen.


    Gruß, Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Samstag, 25. März 2017 15:17
  • Hallo Thomas,

    erst mal vielen Dank für die Hilfe !

    Den kompletten Code zu posten wäre etwas aufwändig ( 10 Klassen ), aber hier ist zumindest der Teil mit dem ich mir die Mauskoordinaten beim Klicken hole:

    m_figure->OnMousePressed(args->CurrentPoint->Position.X, args->CurrentPoint->Position.Y);
    		break;

    Ich hoffe, du hast einen Tip für mich.

    Gruß, Charlie Brown

    Samstag, 25. März 2017 17:51
  • Hier mal ein Beispiel:

    XAML:

    <Grid x:Name="rootGrid" SizeChanged="rootGrid_SizeChanged">
    
            <Canvas Background="Black" x:Name="myCan" PointerPressed="myCan_PointerPressed">
                <Rectangle x:Name="rect1" Width="100" Height="100" Fill="Blue" />
            </Canvas>
    
        </Grid>

    C#:

    private void myCan_PointerPressed(object sender, PointerRoutedEventArgs e)
            {
                double x = e.GetCurrentPoint(myCan).Position.X;
                double y = e.GetCurrentPoint(myCan).Position.Y;
    
                Canvas.SetLeft(rect1, x);
                Canvas.SetTop(rect1, y);
            }


    Gruß, Thomas

    Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!

    Icon für UWP

    Samstag, 25. März 2017 19:17