将图像加载到面板

本文关键字:加载 图像 | 更新日期: 2023-09-27 17:56:25

>我在项目中创建了一个文件夹"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>

工作 ti 的示例在面板中显示控件:

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

如何放置图片而不是控件对象?
.clear() 有什么作用?我需要再次调用它吗?

将图像加载到面板

如果没有WinForms,这将非常容易。您可能有一个网格或其他面板:

<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 项目中的一个资源。有关一些详细信息,请参阅打包 URI。您也可以为 URI 使用绝对或相对文件路径。