25

似乎 WPF矩形形状没有定义 Click 事件。我应该改用什么?

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

4

4 回答 4

33

MouseDown如果您对and不满意MouseUp,也许您可​​以将Rectanglea放入Button并处理Button'Click事件?

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

这真的取决于你所追求的行为。如果需要,请详细说明。

于 2009-07-01T12:51:38.937 回答
27

要将点击处理添加到 Rectangle 本身,您可以使用InputBindings属性:

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

这将导致在单击矩形时执行 FooCommand。如果您使用的是 MVVM,则非常方便!

于 2011-09-08T21:51:47.753 回答
5

我一直在寻找相关的 DoubleClick 事件,并遇到了将感兴趣的对象简单地嵌入 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>
于 2012-07-23T17:12:44.443 回答
-1

Rectangle 有事件Tapped,效果很好。在为 Windows 8.1 设计通用应用程序时,有一些新事件。Tapped、DoubleTaped、RightTapped 和保持。

于 2014-07-24T18:41:07.450 回答