【wpf】使用avicap32.dll对图片进行部分裁剪

Dear200892 2019-12-09 04:15:55
如题
图片能够通过抓图并且保存本地。
现在我希望点击一个按钮能够对图片进行局部裁剪


裁剪框和取裁剪的代码都已经准备好了
现在不知道怎样在界面上画矩形
加载了dll后没办法在控件上执行鼠标事件了

<WindowsFormsHost x:Name="host">
<wf:PictureBox x:Name="_photo" Dock="Fill" MouseMove="_photo_MouseMove" BackColor="Blue"/>
</WindowsFormsHost>
...全文
19 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dear200892 2020-04-23
解决方案:这样就能关闭视频窗口,开始准备裁剪

            /// <summary>
            ///删除一个窗口对象
            /// </summary>
            /// <param name="hWnd">要删除的窗口句柄</param>
            /// <returns></returns>
            [DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
            public static extern bool DestroyWindow(int hWnd);
回复
Dear200892 2019-12-09
引用 1 楼 exception92 的回复:
winform的呈现级别会高于wpf,不管你是否嵌入到border或者其它wpf容器中。这个不太容易解决,只遇到过需要呈现的。
是因为使用了dll的方法
hWndC = capCreateCaptureWindowA(lpszName, WS_CHILD | WS_VISIBLE, mLeft, mTop, mWidth, mHeight, mControlPtr, 0);
这句话注释了就能执行裁剪代码 这句话是创建一个视频窗口 我不知道怎么关闭
回复
exception92 2019-12-09
winform的呈现级别会高于wpf,不管你是否嵌入到border或者其它wpf容器中。这个不太容易解决,只遇到过需要呈现的。
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.