我想制作一个ColorPicker userControl,然后放入一个窗口。
当用户单击usercontrol的任何矩形时,我想将此信息返回给Window。我该怎么办?谢谢!
答案 0 :(得分:2)
您的拾色器UserControl必须实现每次用户单击UserControl的其中一个矩形时引发的事件。如果你不知道如何实现一个事件,只需评论这个答案,我给你一个例子。
以下是示例:您声明自己的事件args(如果需要)以在事件中提供一些信息:
class RectangleClickedEventArgs : EventArgs
{
public int SomeValue { get; set; }
}
在您的usercontrol中声明事件:
public event EventHandler<RectangleClickedEventArgs> RectangleClicked;
在某些情况下,您可以通过这种方式引发事件(线程安全的方式:
var temp = RectangleClicked;
if (temp != null)
{
var e = new RectangleClickedEventArgs{ SomeValue = 42};
temp(this, e);
}
在您的表单中,您订阅了活动:
userControl.RectangleClicked += OnRectangleClicked;
在事件例程中,您可以执行所需的操作:
private void OnRectangleClicked(object sender, RectangleClickedEventArgs e)
{
// Do what you want to do
}
希望有帮助...