我在项目中创建了一个文件夹“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()呢?我需要再打电话吗?
答案 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的绝对或相对文件路径。