2010-12-08 6 views
2

Wenn Sie in Outlook auf die linke Seite des Bildschirms tippen, wird ein Ereignis ausgelöst (in diesem Fall wird ein Kontrollkästchen angezeigt).Wie löscht die Outlook-App das Kontrollkästchen UI-XAML-Code?

Ich würde gerne die XAML wissen, wie dies erreicht wird. Es kann kein einfaches "MouseLeftButtonUp" -Ereignis sein, denn wenn Sie Ihren Finger mehr als ein paar Pixel ziehen, wird das Ereignis nicht ausgelöst.

In meiner eigenen App versuche ich, ein Symbol in einer Listbox angezeigt zu bekommen, die ein SelectionChanged-Ereignis hat. Wenn Sie das kleine Symbol nicht genau berühren, lösen Sie das Listbox-Ereignis aus und nicht das Ereignis, das beim Drücken des Bildes auftreten soll.

Ich denke, ich muss mein Bild in ein Canvas einpacken, aber dann bin ich immer noch fest, was das Ereignis sein sollte.

  1. Wie erhöhen Sie die Zielgröße des Bereichs, in dem ein Benutzer auf Ihr Element klicken kann?

  2. Welches Ereignis sollte ein Bild haben, wenn es sich innerhalb einer Listbox (die sich in einem Pivot befindet) ein SelectionChanged-Ereignis hat? (MouseLeftButtonUp führt zu Problemen, wenn Sie die Hälfte ziehen, um die nächsten Dreh und Finger heben - das MouseLeftButtonUp Ereignisses auslöst)

Antwort

1

I umgesetzt etwas sehr ähnlich zu diesem Verhalten, indem sie ein itemtemplate machen, wo die Checkbox Offscreen nach links geschoben wurde durch eine negative Marge verwenden. Ich habe dann 2 visuelle Zustände erstellt, einen für Open und Closed. Der offene Zustand setzt den Rand auf 0 und bringt das Kontrollkästchen zurück auf den Bildschirm. Der geschlossene Zustand hatte die negative Marge.

Mit dem Fluidmove-Verhalten war das Umschalten zwischen den Zuständen beim Drücken der Taste EASY.Die einzige Sache, die Sie hinzufügen müssten, wäre ein unsichtbarer Knopf-/Berührungsbereich auf der linken Seite, der auch das "Öffnen" der Checkbox-Spalte auslösen würde (Ändern des Zustands, um die Ränder zurückzusetzen).

Hoffe, dass hilft ...

1

Die Aussichten App eine native App ist, so ist es wahrscheinlich überhaupt nicht mit XAML.

Wenn Sie sich Sorgen um die Mausereignisse machen, sollten Sie sich die Geste im silverlight toolkit anschauen, sie enthält Tippereignisse usw., die am Telefon ein wenig mehr Sinn ergeben.

+0

Dank der Tippereignis in der Silverlight-Steuerelement-Toolkit hat super funktioniert! Irgendeine Idee, wie man den anklickbaren Bereich eines Bildes vergrößert? Ich sehe es weiterhin als "Zielbereich berühren", kann aber kein Codebeispiel sehen. – KevinUK

+0

unterstützt Bild Unterstützung Padding? Wenn ja, könnten Sie Padding verwenden. Oder können Sie Ihr Tippereignis auf das Objekt setzen, das das Bild enthält, anstatt auf das Bild selbst? oder ein größeres Bild verwenden? –

+0

Bild unterstützt keine Auffüllung. Ich habe versucht, es in einen Knopf zu wickeln, aber dann drückt die Knopffüllung andere Elemente weg. Ich werde eine spezifischere Frage erstellen. :) – KevinUK

0

Erhöhen der Zielgröße und allgemeines Berührbarmachen von Dingen: Umbrechen Sie sie in einen Button und ändern Sie dann das ControlTemplate für den Button, um den Rahmen zu entfernen.

Wenn Sie sich die ControlTemplate für einen Button ansehen (Expression Blend, Vorlage bearbeiten, Kopie bearbeiten), sehen Sie die Mechanik des Touchbereichs. Es ist nichts mehr als Polsterung/Rand.

So können Sie Ihre Berührungsregion nicht bluten, ohne das Layout zu ändern und andere Elemente um das Steuerelement herum zu beeinflussen. Ich würde zwei Dinge tun:

  • Zuerst würde ich darüber nachdenken, ob meine ganze Kontrolle sollte mit gutem Abstand um es in erster Linie größer sein. Ist mein Design richtig?

  • Zweitens würde ich betrügen. Mit der Translate-Transformation würde ich einen Button fester Größe ohne Rahmen über den Bereich bewegen, um ihn frei zu bewegen.

Viel Glück,

Luke

Verwandte Themen