【问题标题】:C# WPF ImageControl not showing selected image [duplicate]C# WPF ImageControl 不显示所选图像[重复]
【发布时间】:2015-05-31 22:06:00
【问题描述】:

我正在使用 VS2013。 .NetFramework 3 .我正在写一个简单的项目,比如图片库。 我正在尝试将 JPEG 图像添加到图像控制中。首先,我将 test.jpg 图像添加为资源。然后我在窗口上添加一个图像控件。在下一步中,我将在“源”属性中选择图像。图像显示为设计模式。一切正常。但是当我运行项目时,什么都没有显示。 我在谷歌和youtube上搜索。我建立了一些解决方案,但我没有解决我的问题 (对不起ENG) 这里是代码行

<Image Source="pack://siteoforigin:,,,/Resources/1.JPG" ... />

【问题讨论】:

  • 请向我们展示您的代码的相关部分。
  • 好的,我添加了有问题的行
  • 我看不到我用 png 图像测试过的任何类型的图像,但我遇到了一些问题。也许我在属性上有一些错误
  • WPF 处理图像资源的方式与 WinForms 不同。您不会创建图像资源,而只需将图像文件添加到 Visual Studio 项目并将其构建操作设置为资源。有关详细信息,请参阅this answer

标签: c# wpf image


【解决方案1】:

为了在 WPF 应用程序中简单地显示图像,请执行以下操作:

1)。在 XAML 中,添加:

<Image Name="imgName" Source="/ProjAssemblyName;component/RelativePathToImageFile" />

2)。在 Visual Studio IDE 中,选择图像文件并检查其属性:

Build Action: Resources
Copy to Output Directory: Do Not Copy

注意:在最典型的情况下,项目程序集名称与默认命名空间相同;在应用程序属性对话框中检查它。与您的案例相关的有用信息也包含在 Microsoft 参考资料中(正如成员 @Clemens 所指出的那样):https://msdn.microsoft.com/en-us/library/aa970069%28v=vs.110%29.aspx#Resource_File_Pack_URIs___Local_Assembly。)。

另一种选择是将图像的Build Action 属性设置为EmbeddedResource 并以编程方式获取与图像文件对应的BitmapImage 对象,如下所示:

BitmapImage _bmpImage = new BitmapImage();
_bmpImage.BeginInit();
_bmpImage.StreamSource = Assembly.GetExecutingAssembly().GetManifestResourceStream(String.Concat(ProjAssemblyName, ImgFile));
_bmpImage.EndInit();

如果考虑进一步的图像处理,这种技术很有用。

希望这可能会有所帮助。亲切的问候,

【讨论】:

  • 其中YourProjNamespace 不是命名空间,实际上是程序集名称,只要资源在同一个程序集中,就不必指定。见Resource File Pack URIs
  • 没错:在最典型的情况下,这两个名称是相同的。最好的问候,
猜你喜欢
  • 2015-02-07
  • 2016-05-04
  • 1970-01-01
  • 2015-01-15
  • 2021-04-13
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
相关资源
最近更新 更多