私は最近、FormsからWPFに新しい専門知識を得るために切り替えました。 私はカメラアプリケーションをプログラミングすることを考えました。 カメラは独自の静的クラスでアクセスされます(カメラが1つしかないため、複数のインスタンスは必要ありません)。 UIは、画像コントロールを使用して現在の画像をライブビューで表示することになっています。カメラクラスはBitmapSourceを無限ループで更新します。その画像コントロールのソースとして使用します。WPFイメージを更新する方法。独立した静的クラスの値を変更します。
bitmapSourceの変更によってイメージコントロールが更新されるようにする方法はわかりません。それはどのようにして行われますか?私はPropertychangedeventsについて読んでいますが、このシナリオではどのように実装するのか分かりません。
以前のFormsアプリケーションでは、1秒間に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
}
}
は、私はディ最初のものでした。しかし、それを静的クラスに適用すると、「静的クラスはインターフェイスを実装できません」というエラーが表示されます。 –
あなたはその場合シングルトンに行くことができます。 – rdoubleui