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.
Ответ 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.