Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 捕获动态加载控件的事件_C#_Wpf_Events - Fatal编程技术网

C# 捕获动态加载控件的事件

C# 捕获动态加载控件的事件,c#,wpf,events,C#,Wpf,Events,假设我有一个容器,某个方法将向该容器添加多个子容器,我希望能够在双击事件时知道哪个子容器正在被双击,并获取对它的引用。我没有访问控件的权限,它们只是在加载后存在于容器子集合中。最简单的解决方案可能是在适当的事件处理程序中调用inputtest。当然,您必须实现双击,因为WPF面板中没有这样的东西 private void Container_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var container

假设我有一个容器,某个方法将向该容器添加多个子容器,我希望能够在双击事件时知道哪个子容器正在被双击,并获取对它的引用。我没有访问控件的权限,它们只是在加载后存在于容器子集合中。

最简单的解决方案可能是在适当的事件处理程序中调用
inputtest
。当然,您必须实现双击,因为WPF面板中没有这样的东西

private void Container_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    var container = (UIElement)sender;
    var hitElement = container.InputHitTest(e.GetPosition(container));

    Trace.TraceInformation("Hit Element: {0}", hitElement);
}

最简单的解决方案可能是在适当的事件处理程序中调用
InputHitTest
。当然,您必须实现双击,因为WPF面板中没有这样的东西

private void Container_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    var container = (UIElement)sender;
    var hitElement = container.InputHitTest(e.GetPosition(container));

    Trace.TraceInformation("Hit Element: {0}", hitElement);
}

抱歉,可能是我的问题不清楚,我在设计时没有控件,控件在创建和加载之后仍在工作,控件是您动态创建的控件。MouseMoveHandler将用于所有动态创建的控件。请参见编辑的问题,我明白你的意思,这就是我对其他类型的控件所做的,它们是在控件变量上启动的,然后添加到集合中,但我现在搜索的那些控件不会经过控件变量,它们刚刚被注入到我的容器集合中,我希望能够像对待变量控件一样对待它们抱歉,可能我的问题不清楚,我在设计时没有控件,控件在创建和加载之后仍然有效,控件是动态创建的控件。MouseMoveHandler将用于所有动态创建的控件。请参见编辑的问题,我明白你的意思,这就是我对其他类型的控件所做的,它们是在控件变量上启动的,然后添加到集合中,但我现在搜索的那些控件不会经过控件变量,它们刚刚被注入到我的容器集合中,我希望能够像对待通过变量控件的对象一样对待它们