如何在WPF中绘制可单击的矩形

时间:2012-11-21 00:16:23

标签: c# wpf events xaml

我是WPF应用程序的绝对初学者,需要一些帮助。我要做的就是从A点到B点绘制一个矩形,能够检测到单击矩形的时间。因此,当它被点击时,它会变成黄色,再次点击时会变成红色。

2 个答案:

答案 0 :(得分:7)

有多种方法可以做到这一点。

  1. 向矩形添加点击处理程序,并从
  2. 后面的代码切换其颜色
  3. 将矩形的颜色绑定到“视图模型”属性,并使用“委托命令”设置单击属性。
  4. 如果您刚刚开始使用XAML,那么第一个是最简单的(尽管如果您想要遵守MVVM,建议使用#2)。

     <Rectangle x:Name="rect" 
        Width="100" Height="100" Fill="Aquamarine" 
        MouseLeftButtonDown="Rectangle_MouseLeftButtonDown" />
    

    代码隐藏处理程序:

     bool toggle = false;
    
     private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
     {
         rect.Fill = new SolidColorBrush(toggle ? Colors.Aquamarine : Colors.DarkRed);
         toggle = !toggle;
     }
    

答案 1 :(得分:5)

使用Rectangle控件。

<Rectangle
    Height="100"
    Width="100"
    MouseLeftButtonUp="Rectangle_MouseLeftButtonUp_1"

其中Rectangle_MouseLeftButtonUp_1是包含类的事件处理程序。

请注意,除非矩形具有背景,否则您必须单击边框。背景可以是白色,但如果要点击,则需要指定背景。