- 浏览: 390461 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (309)
- xaml C# wpf (0)
- scala java inner clas (1)
- Tools UML Eclipse UML2 (1)
- Timer .NET Framework (1)
- perl (6)
- python function paramter (1)
- Python Docstring (1)
- Python how to compare types (1)
- Python (8)
- java (5)
- C# (76)
- C# WPF (0)
- p4 (0)
- WPF (46)
- .net (6)
- xaml (1)
- javascript (40)
- windows (10)
- scala (4)
- winform (1)
- c++ (48)
- tools (12)
- cmd (1)
- os (0)
- CI (0)
- shell (0)
- C (2)
- haskell (49)
- functional (1)
- tool (1)
- gnu (1)
- linux (1)
- kaskell (0)
- svn (0)
- wcf (3)
- android (1)
最新评论
Following the discussion on this topic that I previous published: Convert from System.Drawing.Icon to System.Media.ImageSource and vice versa , which we discussed the possibility to convert a System.Windows.Forms.Icon into WPF classes such as System.Media.ImageSource;
While there also exist some requirement to do the bridge for the classes such as Forms, or any other specific classes descendant from the System.Windows.Forms.Control class. One of such scenario exists when you say want to print the Visual of the Windows form control.
Fortunately the similar techinque exist for the Forms controls, because like the ICon class, all Form class has a DrawToBitMap method to draw the Control to a bit map, with which you can grab/grip/snatch and make a call to the System.Windows.Interop.Imaging.GetBitmapSourceFromHBitmap(Handle,..);
Please read for more information about the DrawToBitmap method,
Below show one example that use this very similar technique but on the general Forms controls.
public static ImageSource CreateImageSource(System.Windows.Forms.Control control, double width, double height) { System.Drawing.Bitmap b = new System.Drawing.Bitmap((int) width, (int) height); IntPtr bmpHandle = IntPtr.Zero; try { control.DrawToBitmap(b, new System.Drawing.Rectangle(0, 0, (int)width, (int)height); var imageSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( b.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, // Int32Rect.Empty to indicate all sourceRect to to draw? System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); return imageSource; } finally { if (bmpHandle != IntPtr.Zero) { NativeMethods.DeleteObject(bmpHandle); } } }
With the returned ImageSource, you can do a lot of things, including creating a ImageBrush, with wich you can paint to the DrawingContext.DrawRectangle or something. e.g. are
public static DrawingVisual CreateDrawingImage(System.Windows.Media.ImageSource imageSource, double width, double height) { var drawingVisual = new DrawingVisual(); // you can create the ImageBrush //var imageBrush = new ImageBrush(imageSource); // open the Render of the DrawingVisual using (var dc = drawingVisual.RenderOpen()) { var rectangle = new Rect { X = 0, Y = 0, Width = width, Height = height, }; // draw the white background dc.DrawRectangle(Brushes.White, null, rectangle); // if you create the ImageBrush, you can pain with the brush //dc.DrawRectangle(imageBrush, null, rectangle); dc.DrawImage(imageSource, rectangle); } return drawingVisual; }
发表评论
-
wpf - example to enhance ComboBox for AutoComplete
2014-09-19 15:56 1943first let’s see an example ... -
WPF – Virtualization – VirutalizationStackPanel and ItemsPanelTemplate
2013-08-05 21:55 1365Topic: WPF – Virtualization – ... -
wpf - BehaviorBase and one use examples
2013-06-18 18:41 1281Behavior is something that we ... -
WPF - Setting foreground color of Entire window
2013-06-13 16:00 1883You might as well as I would s ... -
WPF - Enhanced TabControl - TabControlEx aka Prerendering TabControl
2013-06-13 13:12 5294As an opening word, let's che ... -
wpf - ControlTemplate and AddLogicChild/RemoveLogicalChild
2013-06-10 15:42 1149Recently I was trying to debug ... -
wpf - default implicit style
2013-05-10 10:24 771We know that if you left out ... -
wpf - Style setter on the attached property
2013-05-08 14:54 2824I believe that you are familia ... -
wpf - specify enum values in xaml
2013-05-08 11:31 3547Many a situation you find tha ... -
wpf - IG xamDataGrid bind to XmlDataProvider with Xml Island
2012-12-18 14:28 1254Sometimes you may bind to some ... -
wpf - translate winform button/mouse event to wpf events
2012-12-12 17:37 2134It is common that we sometimes ... -
wpf - Freezable and its meaning
2012-09-27 12:38 0This article is based on the di ... -
wpf - Customize the grid lines for original wpf Grid control
2012-09-27 12:01 1431The System.WIndows.Controls.Gri ... -
c# - Convert from System.Drawing.Image to System.WIndows.Media.ImageSource
2012-09-25 14:27 7375In Previous discussion, we have ... -
wpf - Get Effective DependencyProperty value on a DependencyObject
2012-08-28 19:05 1015As discussed in my previous pos ... -
wpf - Default(Theme) style and its DefaultStyleKey
2012-08-28 17:54 1363As dicsused in the subsection o ... -
wpf - Dependency Property Value Precedence
2012-08-28 18:56 841A dependency property to an Dep ... -
wpf - WPF TemplateBinding vs RelativeSource TemplatedParent
2012-08-28 14:20 3660This is a post that summarizes ... -
wpf - ICutomTypeDescriptor , PropertyDescriptor and its use in PropertyGrid
2012-08-28 14:04 3550The type ICustomTypeDe ... -
wpf - tips to convert UI controls in WPF/Silverlight/Winforms into a Bitmap
2012-08-27 17:44 939In previous discussion, we have ...
相关推荐
gong-wpf-dragdrop, GongSolutions.WPF.DragDrop 库是WPF的拖动'n'拖放框架 简介GongSolutions.WPF.DragDrop 库是一个易于使用的拖拉'n'拖放框架。特性使用 MVVM: 拖放逻辑可以放在ViewModel中。 代码不需要放在in中...
c#-的WPF---MVVM例子,大家共同学习
一个简单的WPF程序
bootstrap-wpf-style-master 样式代码 。。。。。。。。
C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手 C#开发WPF-Silverlight动画及游戏系列教程-深蓝色右手
Prism-Samples-Wpf-master06-10的VS2017版本实现,下载手动重新安装一下nuget包即可,方便大家学习
Pro-WPF-in-C-Sharp-2008-Windows-Presentation-Foundation-with-NET-3-5-2Ed.pdf
Prism-Samples-Wpf-master11-15的VS2017版本实现,下载手动重新安装一下nuget包即可,方便大家学习
wpf--ListBox分组-排序 wpf--ListBox分组-排序
此程序从官网上下载的安装包,没有进行任何破解,如果要破解,看我另外一个资源ControlRegisterHelp那个
我最近打算学习WPF ,在寻找MVVM框架的时候发现了PRISM,在此之前还从一些博客上了解了其它的MVVM框架,比如浅谈WPF中的MVVM框架--MVVMFoundation 中提到的MVVMFoundation,再比如 ViewModel从未如此清爽 - 轻量级...
wpf-wcf-wf整合开发实例--有利于理解wpf-wcf-wf的整合
WPF收集程序
WPF的基本空间历程,使用.net core3.0.1版本
WPF--Effect特效 对Effect的进行使用的小例子
wpf-datagrid-access DB,可以更新数据到Access数据库
wpf-资源的使用-resource
WPF-3-Building Web Browser Applications with Windows Presentation Foundation
一个Wpf控件库。本控件库,结合了MahApps.Metro,Material-Design,HandyControl,PanuonUI,Xceed等控件库,做了一个集成,并有部分自定义的控件
WPF-进阶视频教程(共113集)-108在Windows窗体驻留WPF控件.mp4