0

プロジェクト内に「images」フォルダを作成しました。
関数SetImage()が呼び出されたら、/ images / image.jpgから画像を取得して、パネルに配置します。
xamlのパネル宣言は次のようになります。

xmlns:my="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"

            <my:WindowsFormsHost Name="windowsFormsHost1">
                <wf:Panel x:Name="panelWinform"  Dock="Fill" />
            </my:WindowsFormsHost>

パネルにコントロールを表示するために機能する例:

panelWinform.Controls.Clear();
panelWinform.Controls.Add(controlObject);
controlObject.Dock = System.Windows.Forms.DockStyle.Fill;

controlObjectの代わりに画像を配置するにはどうすればよいですか?
そして、.clear()は何をしますか?もう一度呼び出す必要がありますか?

4

1 に答える 1

1

WinFormsがなければ非常に簡単です。グリッドまたはその他のパネルがある場合があります。

<Grid x:Name="panel">
</Grid>

以下に示すように、 Imageコントロールを Panel に追加するだけです。

public void SetImage()
{
    var uri = new Uri("pack://application:,,,/images/image.png");
    var bitmap = new BitmapImage(uri);
    var image = new Image { Source = bitmap };

    panel.Children.Add(image);
}

画像ファイルが Visual Studio プロジェクトのリソースであると想定しているため、画像 URI はこのようになります。詳細については、パック URIを参照してください。URI に絶対または相対ファイル パスを使用することもできます。

于 2013-01-27T13:32:25.907 に答える