■ Stroke 클래스의 AddPropertyData 메소드를 사용해 속성 데이터를 추가하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System; using System.Windows.Ink; ... Stroke stroke; ... Guid timeGUID = new Guid("E41186AC-A5C7-4D01-BB43-326EED0A20DD"); stroke.AddPropertyData(timeGUID, DateTime.Now); |
■ InkCanvas 클래스의 Select 메소드를 사용해 모든 스트로크를 선택하는 방법을 보여준다/ ▶ 예제 코드 (C#)
|
using System.Windows.Controls; InkCanvas inkCanvas; ... inkCanvas.Select(inkCanvas.Strokes); |
■ InkCanvas 클래스의 Paste 메소드를 사용해 붙여넣는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Windows.Controls; InkCanvas inkCanvas; ... inkCanvas.Paste(); |
■ InkCanvas 클래스의 CopySelection 메소드를 사용해 선택 스트로크 컬렉션을 복사하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Windows.Controls; InkCanvas inkCanvas; ... inkCanvas.CopySelection(); |
■ InkCanvas 클래스의 CanPaste 메소드를 사용해 붙여넣기 가능 여부를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Windows.Controls; InkCanvas inkCanvas; ... bool status = inkCanvas.CanPaste(); |
■ InkCanvas 클래스의 CutSelection 메소드를 사용해 선택 스트로크 컬렉션을 잘라내는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Windows.Controls; InkCanvas inkCanvas; ... inkCanvas.CutSelection(); |
■ InkCanvas 클래스의 GetSelectedStrokes 메소드를 사용해 선택 스트로크 컬렉션을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Windows.Controls; using System.Windows.Ink; InkCanvas inkCanvas; ... StrokeCollection collection = inkCanvas.GetSelectedStrokes(); |
■ Stroke 클래스의 GetGeometry 메소드를 사용해 지오메트리를 구하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
using System.Windows.Ink; using System.Windows.Media; Stroke stroke; ... Geometry geometry = stroke.GetGeometry(); |
■ InkCanvas 엘리먼트를 사용하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<InkCanvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" /> |
■ InkCanvas 객체의 데이터를 XAML 데이터로 변환해 저장하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
using System.IO; using System.Windows.Controls; using System.Windows.Ink; using System.Windows.Markup; using System.Windows.Media; #region XAML 데이터 저장하기 - SaveXAMLData(inkCanvas, filePath) /// <summary> /// XAML 데이터 저장하기 /// </summary> /// <param name="inkCanvas">InkCanvas 객체</param> /// <param name="filePath">파일 경로</param> public void SaveXAMLData(InkCanvas inkCanvas, string filePath) { FileStream stream = null; try { stream = new FileStream(filePath, FileMode.Create, FileAccess.Write); DrawingGroup drawingGroup = new DrawingGroup(); foreach(Stroke stroke in inkCanvas.Strokes) { Color color = stroke.DrawingAttributes.Color; if(stroke.DrawingAttributes.IsHighlighter) { color = Color.FromArgb(128, color.R, color.G, color.B); } drawingGroup.Children.Add ( new GeometryDrawing ( new SolidColorBrush(color), null, stroke.GetGeometry() ) ); } XamlWriter.Save(drawingGroup, stream); } finally { if(stream != null) { stream.Close(); } } } #endregion |
■ InkCanvas 클래스의 Strokes 속성을 사용해 ISF 데이터를 파일에 저장하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
using System.IO; using System.Windows.Controls; #region 데이터 저장하기 - SaveISFData(inkCanvas, filePath) /// <summary> /// 데이터 저장하기 /// </summary> /// <param name="inkCanvas">InkCanvas 객체</param> /// <param name="filePath">파일 경로</param> public void SaveISFData(InkCanvas inkCanvas, string filePath) { FileStream fileStream = null; try { fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write); inkCanvas.Strokes.Save(fileStream); } finally { if(fileStream != null) { fileStream.Close(); } } } #endregion |
■ 파일에서 데이터를 로드하고 InkCanvas 클래스의 Strokes 속성에 값을 설정하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
using System.IO; using System.Windows.Controls; #region 데이터 로드하기 - LoadData(inkCanvas, filePath) /// <summary> /// 데이터 로드하기 /// </summary> /// <param name="inkCanvas">InkCanvas 객체</param> /// <param name="filePath">파일 경로</param> public void LoadData(InkCanvas inkCanvas, string filePath) { FileStream fileStream = null; try { fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read); inkCanvas.Strokes = new StrokeCollection(fileStream); } finally { if(fileStream != null) { fileStream.Close(); } } } #endregion |