所以我尝试将来自MainWindow.xaml.cs的信息传递给名为Distance.xaml.cs的新窗口。因此,我添加了一个按钮,单击该按钮可打开新窗口。 我的代码几乎完美无缺:
private void CmdDistance_Click(object senderr, RoutedEventArgs e)
{
Distance distance = new Distance();
distance.setPosition(e.GetPosition(DepthImage));
distance.setArray(mySkeletonArray);
distance.Show();
}
唯一的问题是我需要将DepthImage上的Position传递给Distance.xaml.cs。所以我使用GetPosition。但这是我的问题:要使用GetPosition我需要使用System.Windows.Input.MouseEventArgs,但是如果我将两个EventHandler编程到我的函数中,我会得到错误:
'CmdDistance_Click'没有重载匹配委托'System.Windows.RoutedEventHandler'
有人知道我做错了吗
编辑:我现在更改了我的代码,因此我首先将鼠标位置存储在变量中,然后将其传递给第二个窗口。问题是,当我尝试在我的图像中标记两个点时,没有任何东西从MainWindow传递到第二个窗口,因此没有任何反应。
这是我的MainWindow新代码:
public partial class MainWindow:Window
{
System.Windows.Point myMousePosition;
private void MousePosition(object sender, System.Windows.Input.MouseEventArgs e)
{
System.Windows.Point myMousePosition = e.GetPosition(DepthImage);
}
private void CmdDistance_Click(object senderr, RoutedEventArgs e)
{
Distance distance = new Distance();
distance.setPosition(myMousePosition);
distance.setArray(mySkeletonArray);
distance.Show();
}
}
在DistanceWindow中,我使用这行代码来计算距离:
public partial class Distance : Window
{
KinectSensor mySensor;
SkeletonPoint[] mySkeletonArray;
System.Windows.Point position;
int i;
public Distance()
{
InitializeComponent();
i = 1;
}
public void setPosition(System.Windows.Point pos)
{
position = pos;
}
public void setArray(SkeletonPoint[] SkeletonArray)
{
mySkeletonArray = SkeletonArray;
}
private void DistanceMeasurement(object sender, System.Windows.Input.MouseEventArgs e)
{
int xpos = (int)position.X;
int ypos = (int)position.Y;
}
}