将图像加载到面板

时间:2013-01-27 13:04:41

标签: c# wpf controls

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

如何放置图片而不是controlObject?
什么是.clear()呢?我需要再打电话吗?

1 个答案:

答案 0 :(得分:1)

没有 WinForms会很容易。您可能有一个Grid或其他Panel:

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

并简单地向面板添加Image控件,如下所示。

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 URIs。您也可以使用URI的绝对或相对文件路径。