winform события мыши в пользовательский элемент управления wpf - PullRequest
0 голосов
/ 24 апреля 2018

Я реализовал проект WPF, который визуализирует трехмерную сетку данных, поступающих с микропрофилометра.

Поскольку я уже реализовал большую часть работы по анализу 2D-данных на WinForms;Я хочу создать пользовательский элемент управления класса WPF, который вызывается приложением winform.И я сделал.Проблема в том, что в классе WPF запускаются события мыши, и я могу вращать, масштабировать и сдвигать сетку;но когда я вставляю пользовательский элемент управления в мое приложение winform, сетка успешно создается;но события мыши вообще не запускаются.(но они реализованы в пользовательском элементе управления)

Мне не хватает какой-то логики?

Вот код событий мыши WPF

public void OnViewportMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs args)
{
    Point pt = args.GetPosition(mainViewport);
    if (args.ChangedButton == MouseButton.Left)         // rotate or drag 3d model
    {
        m_transformMatrix.OnLBtnDown(pt);
    }

    }

    public void OnViewportMouseMove(object sender, System.Windows.Input.MouseEventArgs args)
    {
        Point pt = args.GetPosition(mainViewport);

        if (args.LeftButton == MouseButtonState.Pressed)                // rotate or drag 3d model
        {
            m_transformMatrix.OnMouseMove(pt, mainViewport);

            TransformChart();
        }
    }

    public void OnViewportMouseUp(object sender, System.Windows.Input.MouseButtonEventArgs args)
    {
        Point pt = args.GetPosition(mainViewport);
        if (args.ChangedButton == MouseButton.Left)
        {
            m_transformMatrix.OnLBtnUp();
        }

    }
}

И этоwinform, использующий пользовательский элемент управления WPF

public partial class MeshViewer: Form
{
    wpfControlLib.UserControl1 userControl;
    public MeshViewer(double[,] d)
    {
        InitializeComponent();

        userControl = new wpfControlLib.UserControl1(d);
        elementHost1.Child = userControl;
        elementHost1.Show();

    }
}

Я попытался поместить те же обработчики событий мыши в класс winform, а затем вызвать соответствующие события мыши класса WPF, но аргументы событий мыши в WinForms различныи WPF ... и я не думаю, что это правильный путь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...