Parece que la forma WPF Rectangle no tiene el evento Click definido. ¿Qué se supone que debo usar en su lugar?Rectángulo WPF no tiene un evento Click
Tiene MouseUp, pero no es exactamente el mismo comportamiento.
Parece que la forma WPF Rectangle no tiene el evento Click definido. ¿Qué se supone que debo usar en su lugar?Rectángulo WPF no tiene un evento Click
Tiene MouseUp, pero no es exactamente el mismo comportamiento.
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.
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!
¿Es esto .NET 4, o también funciona en .NET 3.5? –
Está disponible en .NET 3.5: http://msdn.microsoft.com/en-us/library/system.windows.uielement.inputbindings(v=VS.90).aspx – Grokys
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 –
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>
Esto funcionó como un campeón. Simple y al grano. +1 –
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.
Esto es probablemente lo que quiero. –