WPF矩形没有Click事件

M. *_*ley 22 wpf events shapes

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

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

Ken*_*art 33

如果你不快乐MouseDownMouseUp,也许你可以只是把RectangleButton和处理ButtonClick事件?

<Button>
    <Button.Template>
        <ControlTemplate>
            <Rectangle .../>
        </ControlTemplate>
    </Button.Template>
</Button>
Run Code Online (Sandbox Code Playgroud)

这实际上取决于你所追求的行为.请详细说明是否需要.


Gro*_*kys 21

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

<Rectangle Fill="Blue" Stroke="Black">
    <Rectangle.InputBindings>
        <MouseBinding Gesture="LeftClick" Command="{Binding FooCommand}"/>
    </Rectangle.InputBindings>
</Rectangle>
Run Code Online (Sandbox Code Playgroud)

这将导致在单击矩形时执行FooCommand.如果你正在使用MVVM,很方便!


mjh*_*mre 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>
Run Code Online (Sandbox Code Playgroud)