Подтвердить что ты не робот

WPF Rectangle не имеет события Click

Похоже, что форма WPF Rectangle не имеет определенного события Click. Что я должен использовать вместо этого?

У этого есть MouseUp, но это не совсем то же самое поведение.

4b9b3361

Ответ 1

Если вы недовольны MouseDown и MouseUp, возможно, вы можете просто поместить Rectangle в Button и обработать событие Button Click?

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

На самом деле это зависит от поведения, которое вам нужно. Пожалуйста, уточните, если это необходимо.

Ответ 2

Чтобы добавить клик к самому прямоугольнику, вы можете использовать свойство InputBindings:

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

Это приведет к тому, что FooCommand будет выполняться при щелчке по прямоугольнику. Удобно, если вы используете MVVM!

Ответ 3

Я искал соответствующее событие 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>

Ответ 4

Rectangle имеет событие Tapped, которое отлично работает. При разработке универсальных приложений для Windows 8.1 появляются новые события. Tapped, DoubleTaped, RightTapped и Hold.