1+ using System ;
2+ using System . IO ;
13using System . Windows ;
24using System . Windows . Input ;
35using System . Windows . Media ;
6+ using System . Windows . Media . Imaging ;
47using System . Windows . Shapes ;
58
69namespace BluePrintOne
@@ -21,6 +24,7 @@ public CadWindow()
2124 private void Rectangle_Click ( object sender , RoutedEventArgs e ) => currentTool = "Rectangle" ;
2225 private void Circle_Click ( object sender , RoutedEventArgs e ) => currentTool = "Circle" ;
2326 private void Clear_Click ( object sender , RoutedEventArgs e ) => DrawCanvas . Children . Clear ( ) ;
27+ private void Save_Click ( object sender , RoutedEventArgs e ) => SaveToCloud ( ) ;
2428
2529 private void Canvas_MouseDown ( object sender , MouseButtonEventArgs e )
2630 {
@@ -84,5 +88,30 @@ private void Canvas_MouseUp(object sender, MouseButtonEventArgs e)
8488 isDrawing = false ;
8589 currentShape = null ;
8690 }
91+
92+ private void SaveToCloud ( )
93+ {
94+ var oneDrivePath = Environment . GetFolderPath ( Environment . SpecialFolder . UserProfile ) + "\\ OneDrive" ;
95+ var savePath = Directory . Exists ( oneDrivePath ) ? oneDrivePath : Environment . GetFolderPath ( Environment . SpecialFolder . MyDocuments ) ;
96+ savePath = Path . Combine ( savePath , "BluePrintOne" ) ;
97+
98+ if ( ! Directory . Exists ( savePath ) ) Directory . CreateDirectory ( savePath ) ;
99+
100+ var fileName = $ "Drawing_{ DateTime . Now : yyyyMMdd_HHmmss} .png";
101+ var fullPath = Path . Combine ( savePath , fileName ) ;
102+
103+ var renderBitmap = new RenderTargetBitmap ( ( int ) DrawCanvas . ActualWidth , ( int ) DrawCanvas . ActualHeight , 96 , 96 , PixelFormats . Pbgra32 ) ;
104+ renderBitmap . Render ( DrawCanvas ) ;
105+
106+ var encoder = new PngBitmapEncoder ( ) ;
107+ encoder . Frames . Add ( BitmapFrame . Create ( renderBitmap ) ) ;
108+
109+ using ( var file = File . Create ( fullPath ) )
110+ {
111+ encoder . Save ( file ) ;
112+ }
113+
114+ MessageBox . Show ( $ "Saved to: { fullPath } ", "Saved Successfully" , MessageBoxButton . OK , MessageBoxImage . Information ) ;
115+ }
87116 }
88117}
0 commit comments