StoryFragment 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
XPS 문서 내 텍스트 영역의 전체 또는 일부를 나타냅니다.
public ref class StoryFragment
public ref class StoryFragment : System::Collections::Generic::IEnumerable<System::Windows::Documents::DocumentStructures::BlockElement ^>, System::Windows::Markup::IAddChild
public class StoryFragment
[System.Windows.Markup.ContentProperty("BlockElementList")]
public class StoryFragment : System.Collections.Generic.IEnumerable<System.Windows.Documents.DocumentStructures.BlockElement>, System.Windows.Markup.IAddChild
type StoryFragment = class
interface IAddChild
[<System.Windows.Markup.ContentProperty("BlockElementList")>]
type StoryFragment = class
interface IAddChild
interface seq<BlockElement>
interface IEnumerable
[<System.Windows.Markup.ContentProperty("BlockElementList")>]
type StoryFragment = class
interface seq<BlockElement>
interface IEnumerable
interface IAddChild
Public Class StoryFragment
Public Class StoryFragment
Implements IAddChild, IEnumerable(Of BlockElement)
- 상속
-
StoryFragment
- 특성
- 구현
예제
다음 예제에서는 XPS(XML Paper Specification) 문서의 일부를 보여 <StoryFragment>
줍니다.
<StoryFragment StoryName="DocumentBody" FragmentType="Content">
<SectionStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1Heading1" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1P1" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1P2" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1P3" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1P4" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1P5" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1Heading2" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1P6" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="Pg1P7" />
</ParagraphStructure>
<TableStructure>
<TableRowGroupStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R1C1P1" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R1C2P1" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R2C1P1" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R2C2P1" />
</ParagraphStructure>
<ParagraphStructure>
<NamedElement NameReference="R2C2P2" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R3C1P1" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R3C2P1" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R4C1P1" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R4C2P1" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R5C1P1" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="R5C2P1" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
</TableRowGroupStructure>
</TableStructure>
</SectionStructure>
</StoryFragment>
설명
XPS 문서의 XPS 이야기는 신문이나 잡지의 이야기와 거의 유사합니다. 일반적으로 단일 XPS 문서 내에서 단일 항목에 대한 텍스트 및 그래픽 콘텐츠의 구절입니다. 일반적으로 여러 페이지에 걸쳐 있지만 잡지에서 사이드바(박스형 스토리)와 같은 페이지보다 짧을 수 있습니다. 이야기는 4페이지에서 계속되는 첫 페이지 신문 기사처럼 불연속적일 수도 있습니다. 따라서 지정된 페이지에는 둘 이상의 스토리와 둘 이상의 스토리 부분이 있을 수 있습니다. 머리글 또는 바닥글은 단일 페이지에 완전히 포함된 특별한 종류의 스토리이기도 합니다.
는 StoryFragment 스토리의 전체 또는 일부를 나타냅니다. 둘 이상의 페이지에 걸쳐서는 안 되지만 페이지 전체를 차지하거나 다른 조각과 페이지를 공유할 수 있습니다. 스토리가 둘 이상의 페이지에 있는 경우 각 페이지의 각 부분은 별도의 조각입니다. 스토리에는 불연속적인 조각 집합이 있을 수 있지만, 어떤 조각도 불연속적일 수 없습니다.
StoryFragments 요소만 의 StoryFragment부모일 수 있습니다. 내 StoryFragment 요소의 StoryBreak 위치는 스토리가 여러 조각에 포함되어 있는지 여부와 추가 조각이 현재 조각 앞에 있거나 현재 조각을 따르는지 여부를 나타냅니다.
StoryFragment 가 일부 구조 요소의 중간에 끝나는 경우(예<TableRowGroupStructure>
: ). XPS 문서 생성 애플리케이션은 이후 조각에서 구조가 계속되더라도 태그 앞에 </StoryFragment>
요소(이 경우</TableRowGroupStructure>
)에 대한 적절한 끝 태그를 삽입해야 합니다. (내의 요소 트리 StoryFragment 가 유효한 XML인지 확인하는 데 필요합니다.) 스토리를 계속하는 조각은 중단된 구조체에 대한 여는 태그로 시작해야 합니다. 중단된 구조체의 전체 트리는 동일한 방식으로 처리되어야 합니다(아래에 설명된 한 가지 예외 제외): 중단 지점 위에 있는 일치하지 않는 모든 시작 태그에 대해 끝 태그를 추가해야 합니다.
예외 스토리 중단 직후에 발생 하는 경우에 적용 됩니다는 </TableCellStructure>
태그를 생성 애플리케이션에는 빈 테이블 셀 구조를 삽입 해야 하는 다음 (<TableCellStructure></TableCellStructure>
) 스토리를 진행 하는 조각에 해당 시점입니다. 지정된 스토리의 모든 조각을 병합 해야 하는 애플리케이션이이 작업을 수행 하는 간단한 알고리즘을 사용할 수 있도록이 작업이 필요 합니다.
예를 들어 애플리케이션이 XPS 문서에 다음 자료를 추가하려고 한다고 가정합니다.
<SectionStructure>
<TableStructure>
<TableRowGroupStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="SomeContent" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="MoreContent" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="EvenMoreContent" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="LastContent" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
</TableRowGroupStructure>
</TableStructure>
</SectionStructure>
조각 페이지 나누기를 강제로 종료 하는 경우 바로 뒤의 </TableCellStructure>
"SomeContent"에 대 한 애플리케이션은 다음 예와에서 같이 분할을 만들어야 합니다.
<StoryFragment StoryName="MyStory" FragmentType="Content">
<SectionStructure>
<TableStructure>
<TableRowGroupStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="SomeContent" />
</ParagraphStructure>
</TableCellStructure>
<!-- lines from here to end of fragment added by producer-->
</TableRowStructure>
</TableRowGroupStructure>
</TableStructure>
</SectionStructure>
</StoryFragment>
<StoryFragment StoryName="MyStory" FragmentType="Content">
<SectionStructure>
<TableStructure>
<TableRowGroupStructure>
<TableRowStructure>
<TableCellStructure>
<!-- extra cell added by producer-->
</TableCellStructure>
<!-- lines from here to start of fragment added by producer-->
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="MoreContent" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
<TableRowStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="EvenMoreContent" />
</ParagraphStructure>
</TableCellStructure>
<TableCellStructure>
<ParagraphStructure>
<NamedElement NameReference="LastContent" />
</ParagraphStructure>
</TableCellStructure>
</TableRowStructure>
</TableRowGroupStructure>
</TableStructure>
</SectionStructure>
</StoryFragment>
문서를 읽는 애플리케이션을이 콘텐츠를 병합 해야 합니다. 예를 들어, 사용 하 여 XPS 뷰어는 클립보드로 복사 전체 스토리 ; 단추 또는 시각 장애인 들에 대 한 XPS 음성 신시사이저에 스토리를 전달 하는 애플리케이션입니다. 문서를 읽는 일부 애플리케이션을 스토리의 조각 중 일부를 병합 해야 합니다. 예를 들어 전체 단락을 세 번 클릭하여 클립보드에 복사하는 기능은 단락이 페이지 나누기에 걸쳐 있을 때마다 병합을 수행해야 합니다. 이러한 단락은 두 StoryFragment단락으로 분할되기 때문입니다.
병합하려면 다음 알고리즘을 사용합니다.
</StoryFragment>
병합할 첫 번째 조각의 끝에서 를 삭제하고 두 번째 조각의 시작 부분에서 를 삭제<StoryFragment>
합니다.첫 번째 조각의 마지막 닫는 태그가 두 번째 조각의 첫 번째 여는 태그와 동일한 형식이면(태그가 아님
<NamedElement>
) 둘 다 삭제합니다.두 조각이 다음 상태 중 하나에 표시될 때까지 2단계를 반복합니다.
선행 조각의 마지막 끝 태그 사이에는 후행 조각의 첫 번째 시작 태그 간에 형식 일치가 더 이상 없습니다.
선행 조각의 마지막 끝 태그는 후행 조각의 첫 번째 시작 태그가 모두
<NamedElement>
태그입니다.
위의 예에서 생성 애플리케이션에서 빈 셀을 추가 하지 않았다면 하는 경우 다음 조각의 병합기 표를 만듭니다. 첫 번째 행 인 원래 대신 "SomeContent" 및 "MoreContent" 참조를 먼저 포함 된 하나의 셀 했습니다 각 단일 참조를 포함 하는 두 개의 셀을 사용 하 여 행
전체 스토리가 병합될 때 알고리즘은 동일한 스토리의 일부인 각 후속 조각에 대해 반복되어야 합니다. 스토리에 속하는 조각은 요소에 <Story>
인덱싱됩니다.
XPS: 사양 및 라이선스 다운로드에서 얻을 수 있는 XPS(XML Paper Specification) 사양의 섹션 9.1.15를 참조하세요. 지정된 스토리의 마지막 조각에는 요소가 마지막 자식으로 있습니다 StoryBreak .
생성자
StoryFragment() |
StoryFragment 클래스의 새 인스턴스를 초기화합니다. |
속성
FragmentName |
텍스트 영역 조각의 이름을 가져오거나 설정합니다. |
FragmentType |
조각의 형식을 가져오거나 설정합니다. |
StoryName |
텍스트 영역의 이름을 가져오거나 설정합니다. |
메서드
Add(BlockElement) |
텍스트 영역 조각에 블록을 추가합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IAddChild.AddChild(Object) |
이 멤버는 .NET Framework 인프라를 지원하며 사용자 코드에서 직접 사용할 수 없습니다. |
IAddChild.AddText(String) |
노드의 텍스트 콘텐츠를 개체에 추가합니다. |
IEnumerable.GetEnumerator() |
이 메서드는 구현되지 않았습니다. |
IEnumerable<BlockElement>.GetEnumerator() |
이 메서드는 구현되지 않았습니다. |
확장 메서드
적용 대상
추가 정보
.NET