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

Fro*_*ire 2 c# wpf events xaml

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

McG*_*gle 7

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

  1. 向矩形添加单击处理程序,并从后面的代码切换其颜色
  2. 将矩形的颜色绑定到"视图模型"属性,并使用"委托命令"在单击时设置该属性.

如果您刚开始使用XAML,第一个是最简单的(尽管如果您想要遵守MVVM,建议使用#2).

 <Rectangle x:Name="rect" 
    Width="100" Height="100" Fill="Aquamarine" 
    MouseLeftButtonDown="Rectangle_MouseLeftButtonDown" />
Run Code Online (Sandbox Code Playgroud)

代码隐藏处理程序:

 bool toggle = false;

 private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 {
     rect.Fill = new SolidColorBrush(toggle ? Colors.Aquamarine : Colors.DarkRed);
     toggle = !toggle;
 }
Run Code Online (Sandbox Code Playgroud)


Kir*_*rst 5

使用Rectangle控件.

<Rectangle
    Height="100"
    Width="100"
    MouseLeftButtonUp="Rectangle_MouseLeftButtonUp_1"
Run Code Online (Sandbox Code Playgroud)

where Rectangle_MouseLeftButtonUp_1包含类的事件处理程序.

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