ビューモデルWpfで画像制御ソースを設定します

ジョニードゥ

このプロパティにバインドされている画像コントロールを含むビューがあります。

   private System.Drawing.Image _sigImage;
    public System.Drawing.Image sigImage
    {
        get { return _sigImage; }
        set { _sigImage = value; RaisePropertyChanged(); }
    }

mvvmを使用して署名パッドを実装するのに忙しく、画像コントロールに署名を表示したいと思っています。しかし、私はそれを表示させることができません。

署名パッドのコードは次のとおりです。

  DynamicCapture dc = new DynamicCaptureClass();
        DynamicCaptureResult res = dc.Capture(sigCtl, "Who", "Why", null, null);
        if (res == DynamicCaptureResult.DynCaptOK)
        {

            sigObj = (SigObj)sigCtl.Signature;
            sigObj.set_ExtraData("AdditionalData", "C# test: Additional data");

            try
            {
                byte[] binaryData = sigObj.RenderBitmap("sign", 200, 150, "image/png", 0.5f, 0xff0000, 0xffffff, 10.0f, 10.0f, RBFlags.RenderOutputBinary | RBFlags.RenderColor32BPP) as byte[];
                using (MemoryStream memStream = new MemoryStream(binaryData))
                {
                    System.Drawing.Image newImage = System.Drawing.Image.FromStream(memStream);

                    sigImage = newImage;

                    // work with image here. 
                    // You'll need to keep the MemoryStream open for 
                    // as long as you want to work with your new image. 
                    memStream.Dispose();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

画像はビットマップとして変数newImageに保存されます。

その画像をsigImageの画像コントロールにバインドするにはどうすればよいですか?

クレメンス

System.Drawing.ImageSourceImage要素のプロパティに適切なタイプではありませんこれはWinFormsであり、WPFではありません。

System.Windows.Media.ImageSource代わりに使用してください

private ImageSource sigImage;

public ImageSource SigImage
{
    get { return sigImage; }
    set { sigImage = value; RaisePropertyChanged(); }
}

そして、MemoryStreamから直接作成されたプロパティにBitmapImageまたはBitmapFrameを割り当てます。BitmapCacheOption.OnLoadビットマップをデコードした直後にストリームを閉じることができるようにするには、を設定する必要があります。

var bitmapImage = new BitmapImage();

using (var memStream = new MemoryStream(binaryData))
{
    bitmapImage.BeginInit();
    bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
    bitmapImage.StreamSource = memStream;
    bitmapImage.EndInit();
}

bitmapImage.Freeze();
SigImage = bitmapImage;

SigImageプロパティを持つクラスのインスタンスがビューのDataContextに割り当てられている場合、バインディングは次のようになります。

<Image Source="{Binding SigImage}"/>

WPFにはstringUriからbyte[]への型変換が組み込まれているためImageSource、ソースプロパティを次のように宣言することもできます。byte[]

private byte[] sigImage;

public byte[] SigImage
{
    get { return sigImage; }
    set { sigImage = value; RaisePropertyChanged(); }
}

次のような値を割り当てます

SigImage = binaryData;

BitmapImageまたはBitmapFrameを手動で作成したり、バインディングを変更したりする必要はありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

画像制御のソース画像を設定する

分類Dev

WPFはバイト配列をデータベースから画像制御ソースに変換します

分類Dev

ビューモデルでisActiveを設定し、チェックボックスをオンにします

分類Dev

スクロールビューで画像の高さを制御する

分類Dev

app.xaml / wpfから画像ソースを設定します

分類Dev

ascxページで制御するデータ属性を設定します

分類Dev

デュアルスクリーン/デュアルモニター設定で色を反転しますか?

分類Dev

ビューからモデルプロパティを設定します

分類Dev

アクティビティにスコープを設定せずに、フラグメント間でビューモデルを共有しますか?

分類Dev

TFS 2015 / vNextビルド-ビルドステップでBuild.Clean制御変数を設定します

分類Dev

ビューモデルを使用して、画像を表示します

分類Dev

ビューモデル(wpf)で選択したタブを取得します

分類Dev

スクリプトコンソールから「スレーブを有効にする→マスターアクセス制御」を設定します

分類Dev

ジェネリックビューでモデルとしてPolymorphicModelクラス化オブジェクトを制御する

分類Dev

Androidでカスタム画像ビューの画像リソースを設定できません

分類Dev

Androidでカスタム画像ビューの画像リソースを設定できません

分類Dev

どのユーザー設定がオーディオアクセスを制御しますか?

分類Dev

SPSS:モデルビューアの色設定を変更しました

分類Dev

Goでビューモデルをどのように定義しますか

分類Dev

Androidでカーソル検索データをテキストビューに設定する方法

分類Dev

親ビューで子ビューモデルメソッドをトリガーします:MarionetteJs

分類Dev

Linuxで最も基本的なテキストコンソールビデオモードを設定する

分類Dev

netfilterモジュールでCONNMARKを設定します

分類Dev

制約レイアウトで複数のビューをグループ化して、ワンクリックリスナーのみを設定します

分類Dev

SQLServerで表形式モデルのデータソースを設定する

分類Dev

リストビューでRadiobuttonをtrueonItemclickに設定します

分類Dev

ブール値を設定する前に制御しますか?

分類Dev

Podspecのターゲットビルド設定にカスタムモジュールを追加します

分類Dev

WPFリストビューボタンの色を設定しますか?

Related 関連記事

  1. 1

    画像制御のソース画像を設定する

  2. 2

    WPFはバイト配列をデータベースから画像制御ソースに変換します

  3. 3

    ビューモデルでisActiveを設定し、チェックボックスをオンにします

  4. 4

    スクロールビューで画像の高さを制御する

  5. 5

    app.xaml / wpfから画像ソースを設定します

  6. 6

    ascxページで制御するデータ属性を設定します

  7. 7

    デュアルスクリーン/デュアルモニター設定で色を反転しますか?

  8. 8

    ビューからモデルプロパティを設定します

  9. 9

    アクティビティにスコープを設定せずに、フラグメント間でビューモデルを共有しますか?

  10. 10

    TFS 2015 / vNextビルド-ビルドステップでBuild.Clean制御変数を設定します

  11. 11

    ビューモデルを使用して、画像を表示します

  12. 12

    ビューモデル(wpf)で選択したタブを取得します

  13. 13

    スクリプトコンソールから「スレーブを有効にする→マスターアクセス制御」を設定します

  14. 14

    ジェネリックビューでモデルとしてPolymorphicModelクラス化オブジェクトを制御する

  15. 15

    Androidでカスタム画像ビューの画像リソースを設定できません

  16. 16

    Androidでカスタム画像ビューの画像リソースを設定できません

  17. 17

    どのユーザー設定がオーディオアクセスを制御しますか?

  18. 18

    SPSS:モデルビューアの色設定を変更しました

  19. 19

    Goでビューモデルをどのように定義しますか

  20. 20

    Androidでカーソル検索データをテキストビューに設定する方法

  21. 21

    親ビューで子ビューモデルメソッドをトリガーします:MarionetteJs

  22. 22

    Linuxで最も基本的なテキストコンソールビデオモードを設定する

  23. 23

    netfilterモジュールでCONNMARKを設定します

  24. 24

    制約レイアウトで複数のビューをグループ化して、ワンクリックリスナーのみを設定します

  25. 25

    SQLServerで表形式モデルのデータソースを設定する

  26. 26

    リストビューでRadiobuttonをtrueonItemclickに設定します

  27. 27

    ブール値を設定する前に制御しますか?

  28. 28

    Podspecのターゲットビルド設定にカスタムモジュールを追加します

  29. 29

    WPFリストビューボタンの色を設定しますか?

ホットタグ

アーカイブ