如何关闭事件处理程序?

时间:2014-07-18 06:20:58

标签: c# wpf event-handling

我确实有以下情况(WPF; C#):

1)我初始化一个摄像头并启动一个事件处理程序,在后台自动显示实时图像

2)之后我想再次关闭这个打开的事件处理程序,例如用户单击一个按钮。 问题:我该怎么做?

我的代码:

private void InitCamera(int CamID)
{
    ...
    Camera.EventFrame += onFrameEventFocusCam;    // start event
    ...
}



private void onFrameEventFocusCam(object sender, EventArgs e)
{
 ...
    Dispatcher.Invoke(new Action(() =>
    {
        // Convert bitmap to WPF-Image
        var bmp = new Bitmap(bitmap);
        var hBitmap = bmp.GetHbitmap();

        System.Windows.Media.ImageSource wpfBitmap = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
        hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

        image_fokus.Source = wpfBitmap;
        image_fokus.Stretch = System.Windows.Media.Stretch.UniformToFill;


        DeleteObject(hBitmap);
        bitmap.Dispose();
    }
...
}

1 个答案:

答案 0 :(得分:2)

你有没有尝试过:

Camera.EventFrame -= onFrameEventFocusCam;