为Button传递两个EventHandler

时间:2014-07-31 03:06:55

标签: c# wpf button window

所以我尝试将来自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;
    }
    }

0 个答案:

没有答案