WPF矩形没有Click事件

时间:2009-07-01 12:46:30

标签: wpf events shapes

似乎WPF Rectangle形状没有定义Click事件。我该怎么用呢?

它确实有MouseUp,但它的行为并不完全相同。

4 个答案:

答案 0 :(得分:32)

如果您对MouseDownMouseUp不满意,也许您可​​以将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。