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 或其他一些面板:

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

只需将图像控件添加到面板,如下所示。

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);
}

图像 URI 看起来像这样,因为我假设图像文件是 Visual Studio 项目中的资源。有关详细信息,请参阅Pack URI。您也可以为 URI 使用绝对或相对文件路径。

于 2013-01-27T13:32:25.907 回答