似乎WPF Rectangle形状没有定义Click事件。我该怎么用呢?
它确实有MouseUp,但它的行为并不完全相同。
答案 0 :(得分:32)
如果您对MouseDown
和MouseUp
不满意,也许您可以将Rectangle
放在Button
中并处理Button
Click
事件?
<Button>
<Button.Template>
<ControlTemplate>
<Rectangle .../>
</ControlTemplate>
</Button.Template>
</Button>
这实际上取决于你所追求的行为。请详细说明是否需要。
答案 1 :(得分:20)
要将单击处理添加到Rectangle本身,您可以使用InputBindings属性:
<Rectangle Fill="Blue" Stroke="Black">
<Rectangle.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding FooCommand}"/>
</Rectangle.InputBindings>
</Rectangle>
这将导致在单击矩形时执行FooCommand。如果你正在使用MVVM,那就很方便了!
答案 2 :(得分:4)
我一直在寻找相关的DoubleClick活动,遇到了this suggestion,只是将感兴趣的对象嵌入到ContentControl中。
以下是他们的示例(带边框,也不支持点击/双击)。
<ContentControl MouseDoubleClick="OnDoubleClick">
<Border Margin="10" BorderBrush="Black" BorderThickness="2">
<Grid Margin="4">
<Rectangle Fill="Red" />
<TextBlock Text="Hello" FontSize="15" />
</Grid>
</Border>
</ContentControl>
答案 3 :(得分:-1)
Rectangle有事件Tapped,工作正常。在为Windows 8.1设计通用应用程序时,有一些新事件。 Tapped,DoubleTaped,RightTapped和Holding。