2012-11-21 44 views
2

我是WPF应用程序的绝对初学者,需要一些帮助。我想要做的是从A点到B点绘制一个矩形,能够检测矩形被点击的时间。所以点击时会变成黄色,再次点击时会变成红色。如何在WPF中绘制可点击的矩形

+0

与论坛网站不同,我们不使用“谢谢”,或“任何帮助表示赞赏”,或在[so]上签名。请参阅“[应该'嗨','谢谢',标语和致敬从帖子中删除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 删除 - 从帖子)。 –

+0

@约翰桑德斯wasnt意识到这一点。 – FrostyFire

回答

7

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

  1. 添加一个单击处理的矩形,并切换从代码它的颜色背后
  2. 绑定矩形的颜色视图模型属性,使用委托指令集上单击属性。

如果您刚刚开始使用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; 
} 
+0

谢谢,就是我在找什么。这应该让我开始。+1 – FrostyFire

5

使用Rectangle控制。

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

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

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

+0

感谢您的帖子。它没有进入到糊状作为我标记为答案的细节,但它应该有助于我开始 – FrostyFire