【发布时间】:2016-10-20 15:22:06
【问题描述】:
我最近从 Forms 切换到 WPF,以获得一些新的专业知识。 首先,我想到了编写相机应用程序。 相机在其自己的静态类中访问(因为我只有一个相机 - 所以不需要多个实例)。 UI 应该通过图像控件在实时视图中显示当前图像。相机类在无限循环中更新 BitmapSource,然后我想将其用作图像控件的 Source。
我只是不知道如何使bitmapSource的变化导致图像控件的更新。这通常是怎么做的?我阅读了有关 Propertychangedevents 的信息,但不知道如何在这种情况下实现它们。
在我之前的 Forms 应用程序中,我有一个计时器,它每秒更新 30 次表单,并使用公共位图作为图片框控件的源。但这是一种丑陋的方式,我想做得更好。
代码如下: 相机类
static class CameraClass
{
static Camera myCam = new Camera(); //from API
public static BitmapSource CurrentCameraImage;
private static void GetCameraImages()
{
while(true)
{
myCam.GetImage(out CurrentCameraImage, 1000); //from API
}
}
public static void StartCamera()
{
myCam.StartAcquisition(); //from API
Task.Run(() => { GetCameraImages(); });
}
}
标准 WPF 类
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
CameraClass.StartCamera();
//this should now cause the image control to update
//everytime the bitmapsource is changed
}
}
【问题讨论】:
标签: c# wpf data-binding camera