(visual studio, windows form, C#)을 사용하여 일부 그림을 만들었습니다. 지금은 일이 무엇향후 수정을 위해 마우스 이벤트 그림 저장
내 목표는 그것이 내가 미래에 저장된 파일을 열 때 나는 내 오랜 작업을 계속할 수있는 도면을 저장하기 위해 저장 버튼 추가하는 것입니다...
내가 비주얼 스튜디오를 열 때마다입니다 나는 모든 것을 다시 그려야한다.
(visual studio, windows form, C#)을 사용하여 일부 그림을 만들었습니다. 지금은 일이 무엇향후 수정을 위해 마우스 이벤트 그림 저장
내 목표는 그것이 내가 미래에 저장된 파일을 열 때 나는 내 오랜 작업을 계속할 수있는 도면을 저장하기 위해 저장 버튼 추가하는 것입니다...
내가 비주얼 스튜디오를 열 때마다입니다 나는 모든 것을 다시 그려야한다.
첫 번째 작업은 그리는 데이터를 List<T>
에 수집하는 것입니다. 당신이 원하는 경우
using System.IO;
using System.Xml.Serialization;
// all drawn curve points are collected here:
List<List<PointF>> curves = new List<List<PointF>>();
private void SaveButton_Click(object sender, EventArgs e)
{
XmlSerializer xmls = new XmlSerializer(typeof(List<List<PointF>>));
using (Stream writer = new FileStream(yourDrawingFileName, FileMode.Create))
{
xmls.Serialize(writer, curves);
writer.Close();
}
}
private void LoadButton_Click(object sender, EventArgs e)
{
if (File.Exists(yourDrawingFileName))
{
XmlSerializer xmls = new XmlSerializer(typeof(List<List<PointF>>));
using (Stream reader = new FileStream(yourDrawingFileName, FileMode.Open))
{
var curves_ = xmls.Deserialize(reader);
reader.Close();
curves = (List<List<PointF>>) curves_;
Console.Write(curves.Count + " curves loaded.");
}
}
yourPanelOrPictureBoxOrForm.Invalidate;
}
: 그들 (모두) my comments here 또는 여기 here.
레자의 답변을 참조 수집하는 방법에 대한 코드를 는 곡선을 그리는 데 사용할 수 있습니다 & 부하 간단한 PointF
목록을 저장하는 예이다 더 복잡한 클래스의 드로잉 작업을 저장하면 PointF
을 yourClass
으로 바꿉니다. 클래스가 직렬화 가능한지 확인하십시오! (Points
도 물론 strings
ints
, 미세하고, Colors
약간의 도움이 필요합니다 ..) 더 복잡한 그리기 액션 클래스를 설계하는 방법에 대한 힌트를
이 here
고마워, 시도해보고 알려 줄께 –
예, 시간을내어 물어보십시오. whe 너는 문제가 생겨서 ..! – TaW
당신은 배열에있는 모든 그림을 넣을 수 있습니다 참조 이 배열을 파일에 저장하십시오. 다음에이 파일을로드하고 다시 그려야합니다. –
Bitmap과 rectangle을 사용하여 이미지와 원을 그리는 중, 배열로 저장하는 방법을 모르겠습니다. ( –
) 그저 아이디어 일 뿐이므로 개체 구조를 사용하여 파일에 직렬화 할 수 있습니다 (예 : BinaryFormatter 사용). . –