WPF 矩形没有 Click 事件

发布于 2024-07-26 18:08:25 字数 189 浏览 5 评论 0原文

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

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

It seems that the WPF Rectangle shape does not have the Click event defined. What am I supposed to use instead?

It does have MouseUp, but it's not quite the same behavior.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凑诗 2024-08-02 18:08:25

如果您对 MouseDownMouseUp 不满意,也许您可​​以将 Rectangle 放入 Button 中,然后处理 ButtonClick 事件?

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

这实际上取决于您所追求的行为。 如果需要请详细说明。

If you're not happy with MouseDown and MouseUp, perhaps you could just put the Rectangle in a Button and handle the Button's Click event?

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

It really depends with the behavior you're after. Please elaborate if needs be.

孤者何惧 2024-08-02 18:08:25

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

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

这将导致在单击矩形时执行 FooCommand。 如果您使用 MVVM,这会很方便!

To add click handing to a Rectangle itself, you can use the InputBindings property:

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

This will cause the FooCommand to be executed when the rectangle is clicked. Handy if you're using MVVM!

喵星人汪星人 2024-08-02 18:08:25

我正在寻找相关的 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>

I was looking for the related DoubleClick event and came across this suggestion to simply embed the object of interest in a ContentControl.

Here is their example (with a border, which also did not support click/double click).

<ContentControl MouseDoubleClick="OnDoubleClick">
    <Border Margin="10" BorderBrush="Black" BorderThickness="2">
        <Grid Margin="4">
            <Rectangle Fill="Red" />
            <TextBlock Text="Hello" FontSize="15" />
        </Grid>
    </Border>
</ContentControl>
拥抱影子 2024-08-02 18:08:25

矩形有事件 Tapped,效果很好。 在为 Windows 8.1 设计通用应用程序时,出现了一些新事件。 轻敲、双敲击、右敲击和固定。

Rectangle has event Tapped, which works fine. In designing universal apps for Windows 8.1, there are new events. Tapped, DoubleTaped, RightTapped and Holding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文