|
확 인 |
|
WPF Document
학 습 자 |
선문 비트 24기 임영근 |
학습기간 |
2012.09.11~2012.09.11 (3시간) |
목 적 |
편집기에 문서를 불러오기 위해 | ||
개발도구 |
Microsoft Visual Studio 2010 | ||
개 요 |
문서 편집기 | ||
세 부
사 항 |
첨부자료 | ||
고 찰 |
워드 문서에서 표나 이미지를 가져오는 방법을 찾기 힘들어 WPF Document 부분을 다시 처음부터 한번 보는 중이다. |
WPF에는 사용목적에 따라 두 분류
- 고정문서
- 유동문서
고정문서 : -사용된 디스플레이 또는 프린터 하드웨어에 관계없이 정확한 프리젠테이션을 필요로 하는 응용프로그램에 사용
-해당 레이아웃의 일부로서 고정 문서는 사용 중인 디스플레이 또는 인쇄 장치에 관계없이 콘텐츠 요소의 정확한 위치를 유지합니다.
유동문서 : -표시 및 가독성을 최적화 가독성이 가장 중요한 요소인 경우에 가장 적합
-창 크기, 장치 해상도 및 선택적 사용자 기본 설정과 같은 런타임 변수를 기반으로 동적으로 해당 콘텐츠를 조정하고 다시 배치
문서 패키지
-System.IO.Packaging API는 간단한 액세스, 이식 및 배포 기능을 제공하는 하나의 컨테이
너에 응용 프로그램 데이터, 문서 콘텐츠 및 관련 리소스를 구성할 수 있는 효율적인 방법을 제공
-여러 개의 개체를 하나의 단위에 포함할 수 있는 Package 형식의 한 예로 ZIP 파일을 들 수 있다.
-Package에 저장된 개체를 PackagePart ("파트")라고 한다.
-Package : Package는 이식성 및 효율적인 액세스를 위해 정의된 물리적 형식의 단일 엔터티로 개체를 구성하는 데 사용할 수 있는 추상 클래스입니다.
Package 자체는 Open XML 표준 및 ZIP 파일 아키텍처를 사용하여 구현되는 ZipPackage의 추상 클래스입니다.
-ZIP 파일은 가장 많이 사용되는 패키지 형식 중 하나로, WPF에서 제공되는 기본 패키지 형식
- Package 기본 항목 형식
응용 프로그램 콘텐츠, 데이터, 문서 및 리소스 파일 | |
확인, 인증 및 검증을 위한 X.509 인증서 | |
패키지 또는 특정 파트와 관련된 추가 정보 |
XPS 문서
렌더링에 필요한 모든 리소스 및 정보와 함께 하나 이상의 고정 문서가 포함된 패키지
· 고정 문서 콘텐츠 및 리소스를 이식 가능하고 쉽게 배포할 수 있는 단일 파일로 읽고 작성하고 저장합니다.
· XPS 뷰어 응용 프로그램을 사용하여 문서를 표시합니다.
· 문서를 Windows Vista의 네이티브 인쇄 스풀 출력 형식으로 출력합니다.
· 문서를 XPS 호환 프린터로 직접 라우트합니다
문서 Serialization 및 저장소
Serialization : 문서를 내부 메모리 내 표현에서 외부 데이터 저장소로 변환하는 프로세스
Deserialization : 데이터 저장소를 읽고 원래 메모리 내 인스턴스를 다시 만드는 프로세스
serializer "write" 메서드를 호출하여 문서를 저장하는 반면에 deserializer "read" 메서드는 데이터 저장소에 액세스하고 원래 인스턴스를 메모리에서 다시 만듭니다
Serializer의 기능
· 페이지가 매겨진 콘텐츠, 2D/3D 요소, 이미지, 미디어, 하이퍼링크, 주석 및 기타 지원 콘텐츠를 효율적으로 저장할 수 있게 하는 고급 문서 개체(논리 트리 및 시각적 표시)에 대한 직접 액세스 권한
· 동기 및 비동기 작업
· 향상된 기능을 가진 플러그 인 serializer에 대한 지원
· 모든 .NET Framework 응용 프로그램에 사용될 시스템 차원의 액세스
· 간단한 응용 프로그램 플러그 인 검색
· 사용자 지정 타사 플러그 인을 위한 간단한 배포, 설치 및 업데이트
· 사용자 지정 런타임 설정 및 옵션을 위한 사용자 인터페이스 지원
플러그 인 Serializer
System.Windows.Documents.Serialization API에서는 플러그 인 serializer 및 연결된 serializer가 모두 지원됩니다. 이러한 serializer는 응용 프로그램과 별개로 설치되고 런타임에 바인딩되며 SerializerProvider 검색 메커니즘을 통해 액세스
-플러그 인 serializer : 간편한 배포 및 시스템 차원 사용을 위한 향상된 이점을 제공
-연결된 serializer : 플러그 인 serializer에 액세스할 수 없는 XBAP(XAML 브라우저 응용 프로그램) 등과 같은 부분 신뢰 환경에서 구현할 수 있다
SerializerProvider : 시스템에 설치된 각 플러그 인에 대한 SerializerDescriptor 개체를 열거
SerializerDescriptor : 설치 된 플러그 인 serializer에 대한 정보를 제공
유동문서
형식
-FlowDocumentReader : 단일 페이지(한 번에 한 페이지) 보기 모드, 한 번에 두 페이지(책 읽기 형식) 보기 모드 및 연속 스크롤(바닥 없음) 보기 모드를 비롯한 다양한 보기 모드를 동적으로 선택할 수 있는 기능이 포함
-FlowDocumentPageViewr : 번에 한 페이지 보기 모드
-FlowDocumentScrollViewer : 연속 스크롤 모드
-RichTextBox : 사용자가 유동 콘텐츠를 편집할 수 있게 할 때 사용
범주
-블록 파생 클래스 : Block에서 상속되는 요소를 사용하여 공통 부모 아래의 요소를 그룹화하거나 공통 특성을 그룹에 적용할 수 있습니다.
-인라인 파생 클래스 : Inline에서 상속되는 요소는 블록 요소 또는 다른 인라인 요소에 포함됩니다.인라인 요소는 흔히 화면에 렌더링되는 콘텐츠의 직접 컨테이너로 사용. 예를 들어 Paragraph(블록 요소)는 Run(인라인 요소)을 포함할 수 있지만 Run은 실제로 화면에서 렌더링되는 텍스트를 포함합니다.
블록 파생 클래스
- Paragraph : 일반적으로 콘텐츠를 단락으로 그룹화하는 데 사용
- Section : Block에서 파생된 다른 요소를 포함하기 위해서만 사용
설정된 모든 속성 값은 자식 요소에 적용
-BlockUIContainer : UIElement 요소(예:Button)를 블록 파생 유동 콘텐츠에 포함 가능
인라인 파생 클래스
-Run : 서식 없는 텍스트를 포함하는 데 사용
-Span : 다른 인라인 콘텐츠 요소를 함께 그룹화
-Fiqure,Floater : 주로 콘텐츠 일부를 강조하거나, 기본 콘텐츠 흐름 내에서 지원 이미지 또는 기타 콘텐츠를 호스팅하거나, 광고와 같은 관련이 적은 콘텐츠를 삽입하는 데 사용
-LineBreak : 유동 콘텐츠에서 줄 바꿈 할 시
유동 콘텐츠를 프로그래밍 방식으로 생성하기 위해 BlockCollection 및 InlineCollection이 사용
myParagraph.Inlines.Add(new Run("Some text"));
secx.Blocks.Add(new Paragraph(new Run("A bit of text content...")));
텍스트 지정 사용 : TextDecorations 속성을 사용
|