74 votesAndrej Benedik commented
This functionality is already present in GDI+. There the Pen object can be created with width = 0, this means that a drawn line is always a single pixel wide regardless of the current transformation - see: http://msdn.microsoft.com/en-us/library/dd183509.aspx
This is very useful for CAD or similar applications and is currently very hard to implement in WPF (without a big performance hit when using more complex drawings).
I developed a metafile to xaml converter (Ab2d.ReaderWmf) that can be also used to convert exported drawings from AutoCad into xaml. The drawing can be exported from Autocad to metafile - when the metafile is opened the lines are always 1 pixed wide regardless of the zoom - this makes the drawing visible at almost any zoom factor. When the metafile is converted into xaml, the StrokeThickness needs to be fixed to a specific value. If I set the StrokeThickness to 1, the details will be correctly seen when user will zoom into the image, but the whole image will be hardly seen as the lines are so thin. If I increase the StrokeThickness, the drawing is correctly seen when viewing without any zoom applied, but when the image is zoomed in, some details are hidden because they are overlapping with thick lines.
There should be a setting, that could make the line thickness independent to the applied transformations.
Postscript vector printing is planned for SL5
Silverlight 5 Beta
2 votesAndrej Benedik shared this idea ·
641 votesAndrej Benedik commented
I am the author of Reader3ds and Ab3d.PowerToys (www.wpf-graphics.com) that greatly enhance WPF 3D abilities.
My suggestions for WPF 3D:
- Native transparency sorting
- Add CameraChanged event that would fire when any camera property would change (LookDirection, Position, etc.) - very easy to add to WPF - with the event there would be no need to use CompositionTarget.Rendering event to check if the camera was changed,
- native DirectX 3D line support (the Ab3d.PowerToys already support 3D lines but they are made of triangles - however its implementation is much better than ScreenSpaceLines).