【发布时间】:2020-01-04 04:12:44
【问题描述】:
我正在尝试将 WPF 图像动态插入到网格中。我目前有一些代码已经这样做了,它遍历 URL 列表,然后从该 URL 获取图片并创建图像,然后将其插入到指定位置的网格中。
但是,我几个月前编写了此代码,此后我忘记了如何正确执行此代码。回顾我的代码,我已经将相关的 sn-ps 复制到一个新的测试方法中,用于调试目的。 “lite”版本的代码会清除网格的所有 Children 和 RowDefinition,然后创建一个新的 RowDefinition 和一个 Image。然后它将图像插入到行中。
RowDefinition def = new RowDefinition
{
Height = new GridLength(400)
};
myGrid.RowDefinitions.Add(def);
Image img = new Image
{
Source = new BitmapImage(new Uri(@"folderpath/myimage.png", UriKind.Relative)),
Margin = new Thickness(0, 5, 0, 5)
};
Grid.SetRow(img, 0);
Grid.SetColumn(img, 0);
myGrid.Children.Add(img);
但是当这段代码运行时,它什么也没有产生。网格内没有任何内容。
应该注意的是,在我的 Visual Studio 项目中,我有一个文件夹“文件夹路径”,其中包含在构建项目时复制的一堆图像。如果我将 myimage.png 添加到 VS 内部的项目中,并在上面运行代码 sn-p 一切正常。图像被创建并放置在网格内。
但是,如果我在构建之前没有将myimage.png 添加到 VS 项目中,而是使用 Windows 资源管理器将文件复制到正确的目录,然后运行代码,它就不起作用。这让我相信这可能是一个目录问题,但在测试 Environment.CurrentDirectory 时,它符合预期。
我现在很茫然,为什么只有在构建之前将其添加到我的VS项目中时才会出现图像,而不是在构建完成后手动将其添加到文件夹时出现?
感谢您的帮助
【问题讨论】:
-
您是否复制到构建输出文件夹下的
folderpath,例如到bin\Debug\folderpath?如果你有一个 URL 列表,为什么不直接从这些 URL 加载图像?