c# – 当我使用MVVM模型时如何在WPF中使用WndProc?

谁能帮帮我吗?
我想在WPF中使用WndProc,但我不想在MainWindow.xaml.cs中使用它,如下所示:

    public MainWindow()
    {
        InitializeComponent();
    }

    protected override void OnSourceInitialized(EventArgs e)
    {
        base.OnSourceInitialized(e);
        HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
        source.AddHook(WndProc);
        _windowHandle = source.Handle.ToInt32();
    }

我想在不同的类中使用它的原因是uEye相机通过消息进行通信,我需要“捕获”它们.因为我使用的是主视图ViewModel模型,所以我不想在MainWindow.xaml.cs中输入代码.

解决方法:

MVVM并没有说你不能在View层中编写代码.它说你必须编写代码来访问ViewModel中的Model并尝试尽可能简单地保持View和ViewModel之间的连接(通常使用绑定).

在这种情况下,您将在视图层代码中编写以访问作为View层一部分的WndProc.

因此,在我看来,您的代码完全符合MVVM标准.

上一篇:C# hook WndProc


下一篇:2018.10.02 NOIP模拟 矩阵分组(二分答案)