WPF Rectangle не имеет события Click
Похоже, что форма WPF Rectangle не имеет определенного события Click. Что я должен использовать вместо этого?
У этого есть MouseUp, но это не совсем то же самое поведение.
Ответы
Ответ 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.