728x90
반응형
728x170
■ InkCanvas 객체의 데이터를 XAML 데이터로 변환해 저장하는 방법을 보여준다.
▶ 예제 코드 (C#)
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
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] BlockUIContainer 엘리먼트 사용하기 (0) | 2014.01.11 |
---|---|
[C#/WPF] FlowDocumentScrollViewer 엘리먼트 사용하기 (0) | 2014.01.11 |
[C#/WPF] FlowDocumentReader 엘리먼트 사용하기 (0) | 2014.01.11 |
[C#/WPF] Hyperlink 엘리먼트 : Frame 탐색하기 (0) | 2014.01.11 |
[C#/WPF] x:TypeArguments 속성 사용하기 (0) | 2014.01.11 |
[C#/WPF] InkCanvas 클래스 : ISF 데이터 저장하기 (0) | 2014.01.10 |
[C#/WPF] InkCanvas 클래스 : 데이터 로드하기 (0) | 2014.01.10 |
[C#/WPF] Tablet 클래스 : Tablet 장치 설치 여부 조사하기 (0) | 2014.01.10 |
[C#/WPF] ResourceDictionary 엘리먼트 : 리소스 병합하기 (0) | 2014.01.10 |
[C#/WPF] x:Key 속성 : x:Static 태그 확장을 사용해 시스템 리소스 재정의 하기 (0) | 2014.01.10 |
댓글을 달아 주세요