2009-06-15 9 views
5

Dies ist ein uraltes Problem der interaktiven Elemente innerhalb der interaktiven Elemente, aber ich möchte eine ScatterViewItem andere Oberfläche interaktive Elemente wie ein SurfaceButton oder SurfaceCheckBox enthalten. Ich habe alle meine Elemente drin und sie reagieren auf Taps usw. Das Problem ist, dass ich nur das normale ScatterView-Verhalten bekomme, wenn ich auf einen Bereich klicke, der kein Steuerelement enthält.ScatterViewItems haltige Oberflächen Interaktive Elemente

Gibt es eine elegante Lösung zu ermöglichen, ziehen, auch wenn der Kontakt auf einem SurfaceButton oder SurfaceCheckbox ist?

z.B.

<s:ScatterView >  
    <Grid Width="200" Height="200"> 
     <s:SurfaceButton /> 
    </Grid> 
</s:ScatterView> 

Antwort

1

Nach der gleichen Frage auf der Oberfläche Community-Foren zu fragen, war die Antwort, dass dies mit allen WPF Regelverhalten konsistent ist. Wenn Sie z. B. interaktive Elemente zu einer Listbox hinzufügen, reagiert die ListBox nicht auf Interaktionen, wenn sich die Maus über der Schaltfläche befindet.

Wenn jemand anderes über dieses Problem kommt, ist es wahrscheinlich am besten, dieses Problem durch die Gestaltung der Steuerung zu lösen, anstatt zu versuchen, dieses Verhalten zusammen zu hacken. Das Steuerungsverhalten sollte von App zu App und von Steuerelement zu Steuerelement konsistent bleiben.

+0

es gewesen Alter und noch keine weiteren Beiträge. Haben jetzt es als Antwort markiert, aber wenn jemand in der Zukunft eine bessere Antwort hinzufügt werde ich es ändern;) –

+0

Wünschen Sie jemand weiter in diese ausgesehen hatte. Es ist ziemlich natürlich, interaktive Elemente ineinander zu haben. –

0

Sie können dieses Verhalten "hacken", indem Sie ContactLeave-Ereignisse auf einem der untergeordneten Steuerelemente abhören und dabei contact.Capture (scatterviewitem) aufrufen. Das wird dem svi sagen, dass er den Kontakt übernimmt und darauf reagiert. aber es ist im Verhalten im Widerspruch zu anderen Teilen der Oberfläche führen zu gehen und kann verwirrend sein. es ist auch inkonsistent sogar mit sich selbst ... das macht es möglich, von innerer Steuerung zu SVI zu wechseln, ohne den Finger zu heben, aber der Benutzer muss immer noch den Finger heben, um zur inneren Steuerung zurückzukehren.