WPF Shape Resize/Group/Ungroup/Load/Save Control
$250-750 AUD
Оплачується при отриманні
WPF Shape Resize/Group/Ungroup/Load/Save Control
We need a programmer to develop a control for our drawing application we have developed. An image of our environment is attached.
(This is a re-post as our previous post was most likely not descriptive enough)
To be considered you must fully understand the known issues listed below and be able to demonstrate a work around.
Your control will allow for:
Group/Ungroup of user selected shapes. (We only use Rectangle/Ellipse/Line/Polyline/TextBlock)
Resize while maintaining the strokethickness and proportion scaling of Left/Top position of shape positions in group to maintain original look of grouped shapes. TextBlocks will not be resized. They will maintain all original FontSize/Width/Height when resizing. Only shapes will resize.
Save group to xml file and make a png thumbnail of the group to represent group in our shape library.
Load group from saved xml file into your control.
Known Issues:
It is a know issue that ScaleTransform and ViewBox also scale the strokethickness of shapes. Another methodology must be used in your control
to maintain the original stroke thickness when being resized and scale Left/Top (Shape position) of individual shapes in group according to the new Width/Height.
Usage scenario:
Our application currently allows users to drag out a variety of shapes and text onto a white canvas (Whiteboard). They can
select shapes, move them around and resize individual shapes and text.
With your control added to our application a user will be able to select multiple shapes previously added then right click for
our context menu to select Group/Ungroup. When grouping multiple shapes the action will be for us to add the user selected shapes
to your control that will resize on a SizeChangedEvent within your control while maintaining the above criteria. (No Adorners.
Only the SizeChangedEvent as we currently use a canvas/border and rectangle for the resize handle that we place over shapes and now
your control and fire the SizeChangedEvent on resizing Width/Height of our selection control).
From our context menu the user will also be able to "Save" the new grouped shape to an xml file from a "Save" function within your
control. Your "Save" function will also make a png image that will be saved as the same path/filename as the xml.
When a user opens our Shape Library Dialog they will now see their newly created shape represented by the png image saved by your control and will
drag and drop it onto our drawing canvas where your load function within your control will re-create the shapes and positions from the saved
xml file and add them to your control.
Your Ungroup function will restore all grouped objects to their original object type and position them relatively on the drawing canvas. ie: if converting a shape object to a path to overcome the known issues, this will convert the path back to its original shape type.
Your control will also allow for us to have access to the control's Name/Uid and Tag properties.
Test Environment:
You will need to create a basic white canvas and use standard buttons to add Rectangle/Ellipse/Line/Polyline/TextBlock to the canvas.
Allow for multiple shape selection (just mousedown is ok) and a basic context menu to show Group/Ungroup and Load/Save.
Basic shape move on canvas to test layout positioning of shapes to be grouped and saved.
Resize of the new group of shapes to test for the known issues having been solved.
A standard open/save dialog box can be used for testing.
ID Проекту: #4736983
Про проект
Доручено:
have high experience in WPF, i developed some custom control for my own projects (wpf, silverlight), let me take care of, pm me