我的问题与此问题非常相似:wpf image resources and changing image in wpf control at runtime,但稍有不同。
这是我的ResourceDictionary.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ImageSource x:Key="DisconnectedIcon">Images/disconnect.png</ImageSource>
<ImageSource x:Key="Synced">Images/tick.png</ImageSource>
<ImageSource x:Key="NotSynced">Images/x.png</ImageSource>
对于后面的C#代码,我可以使用以下内容从资源加载ImageSource。其中,我能够看到元数据和图像名称,但无法弄清楚如何将它放入System.Drawings.Image。
var imageSource = (ImageSource)Application.Current.FindResource("Synced");
System.Drawing.Image img = Image.FromFile(???)
我尝试将其转换为System.Drawing.Image的原因是将其发送到打印机。
谢谢!
答案 0 :(得分:-1)
在WPF中,每个UI元素都扩展了Visual
Class 在WPF中提供渲染支持。还有一个RenderTargetBitmap
Class,其Render
Method将Visual
个对象作为输入参数。因此,您可以将ImageSource
设置为Source
的{{1}}属性,只需将Image
呈现为Image
图片:
Bitmap
由于这在互联网上有详细记载,我不打算在这里重复整个故事。要查看完整的故事,请参阅Dot NET Tricks网站上的How to Render Bitmap or to Print a Visual in WPF页面,该页面还可以帮助您满足打印要求。