2009-07-01 30 views

Respuesta

30

Si no está satisfecho con MouseDown y MouseUp, tal vez usted podría poner el Rectangle en un Button y manejar Click caso de que el Button 's?

<Button> 
    <Button.Template> 
     <ControlTemplate> 
      <Rectangle .../> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 

Realmente depende del comportamiento que buscas. Por favor, elabore si es necesario.

+0

Esto es probablemente lo que quiero. –

18

Para añadir clic entrega a un rectángulo en sí, se puede utilizar la propiedad InputBindings:

<Rectangle Fill="Blue" Stroke="Black"> 
    <Rectangle.InputBindings> 
     <MouseBinding Gesture="LeftClick" Command="{Binding FooCommand}"/> 
    </Rectangle.InputBindings> 
</Rectangle> 

Esto hará que el FooCommand que se ejecuta cuando se hace clic en el rectángulo. ¡Muy útil si estás usando MVVM!

+0

¿Es esto .NET 4, o también funciona en .NET 3.5? –

+0

Está disponible en .NET 3.5: http://msdn.microsoft.com/en-us/library/system.windows.uielement.inputbindings(v=VS.90).aspx – Grokys

+1

Esta respuesta no funciona en .NET 3.5 , solo en .NET 4 y versiones posteriores. En .NET 3.5, la propiedad Command no está registrada como una propiedad de dependencia, por lo que no se puede establecer como un enlace. Ver mi pregunta en http://stackoverflow.com/questions/1427638/if-we-cant-bind-a-mousebindings-command-what-are-we-supposed-to-do –

4

Estaba buscando el evento de DoubleClick relacionado y me encontré con this suggestion para simplemente insertar el objeto de interés en ContentControl.

Aquí está su ejemplo (con un borde, que tampoco admite clic/doble clic).

<ContentControl MouseDoubleClick="OnDoubleClick"> 
    <Border Margin="10" BorderBrush="Black" BorderThickness="2"> 
     <Grid Margin="4"> 
      <Rectangle Fill="Red" /> 
      <TextBlock Text="Hello" FontSize="15" /> 
     </Grid> 
    </Border> 
</ContentControl> 
+0

Esto funcionó como un campeón. Simple y al grano. +1 –

0

rectángulo tiene caso Tapped, que trabaja muy bien. Al diseñar aplicaciones universales para Windows 8.1, hay nuevos eventos. Tapped, DoubleTaped, RightTapped y Holding.

Cuestiones relacionadas