How fujiwo/shos.wpfcadsample works
Shos.WpfCadSample is a small WPF 2D CAD editor. The main workflow is pointer input through the drawing surface and view model to the editor controller, which interprets tool interactions and commits edits to the undoable drawing; the view then displays the updated shapes. Separate branches handle document open/save, clipboard operations, properties, and persisted settings. The README documents several unsampled UI bindings and capabilities; edges for those are limited to documented relationships rather than inferred from names.
Main entry points: MainViewModel.cs Application commands · DrawingViewModel.cs Drawing view state · EditorController.cs Editor controller · ClipboardService.cs System clipboard
Components 24
WPF interface
- Drawing surface
Source/Shos.WpfCadSample/Shos.WpfCadSample/Views/DrawingSurface.cs - WPF views
Source/Shos.WpfCadSample/Shos.WpfCadSample/Views - Application commands
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/MainViewModel.cs - Drawing view state
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/DrawingViewModel.cs - Properties state
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/PropertiesViewModel.cs
Editing core
- Editor controller
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Controllers/EditorController.cs - Tool interactions
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Controllers - Undoable drawing
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Models/Drawing.cs - Shape models
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Models - Outline geometry
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Models/Geometry/Outline.cs - Viewport transform
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Models/Geometry/Viewport.cs - Geometry primitives
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Models/Geometry
Documents and settings
- Document storage
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Serialization/DocumentStorage.cs - Document serializer
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Serialization/DocumentSerializer.cs - Clipboard format
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Serialization/ClipboardShapes.cs - Settings storage
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Settings/SettingsStorage.cs
Desktop integrations
- Dialog contract
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Services/IDialogService.cs - Clipboard contract
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Services/IClipboardService.cs - WPF dialogs
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/DialogService.cs - System clipboard
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/ClipboardService.cs - Native clipboard
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/NativeClipboard.cs - Metafile renderer
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/MetafileRenderer.cs
Other components
- CAD user
- Other applications
Connections 27
- CAD user → Drawing surface: provides input
README.md - Drawing surface → Drawing view state: sends pointer events
README.md - Drawing view state → Editor controller: converts and forwards
README.md - Editor controller → Viewport transform: transforms coordinates
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Controllers/EditorController.cs - Editor controller → Tool interactions: dispatches input
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Controllers/EditorController.cs - Tool interactions → Undoable drawing: edits shapes
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Controllers/EditorController.cs - Editor controller → Undoable drawing: commits edits
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Controllers/EditorController.cs - Undoable drawing → Shape models: holds shape list
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Models/Drawing.cs - Shape models → Outline geometry: creates outlines
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Models/Shape.cs - Outline geometry → Geometry primitives: uses primitives
- Drawing view state → Undoable drawing: observes document
README.md - Drawing view state → WPF views: binds drawing state
README.md - WPF views → Properties state: binds properties
README.md - Properties state → Editor controller: edits attributes
- Application commands → Drawing view state: coordinates commands
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/MainViewModel.cs - Application commands → Document storage: loads and saves
README.md - Document storage → Document serializer: serializes documents
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/Serialization/DocumentStorage.cs - Document serializer → Shape models: encodes shapes
- Application commands → Clipboard contract: requests clipboard operations
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/MainViewModel.cs - Application commands → Clipboard format: encodes pasted shapes
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/MainViewModel.cs - Application commands → Dialog contract: shows prompts
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/MainViewModel.cs - Application commands → Settings storage: loads and saves settings
Source/Shos.WpfCadSample/Shos.WpfCadSample.Core/ViewModels/MainViewModel.cs - WPF dialogs → Dialog contract: implements
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/DialogService.cs - System clipboard → Clipboard contract: implements
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/ClipboardService.cs - System clipboard → Native clipboard: uses native access
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/ClipboardService.cs - System clipboard → Metafile renderer: renders metafiles
Source/Shos.WpfCadSample/Shos.WpfCadSample/Infrastructure/ClipboardService.cs - System clipboard → Other applications: exports images
README.md