StoryFragment StoryFragment StoryFragment StoryFragment Class

Определение

Представляет статью или ее часть в документе XPS.Represents all or part of a story within an XPS document.

public ref class StoryFragment : System::Collections::Generic::IEnumerable<System::Windows::Documents::DocumentStructures::BlockElement ^>, System::Windows::Markup::IAddChild
[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
    interface seq<BlockElement>
    interface IEnumerable
Public Class StoryFragment
Implements IAddChild, IEnumerable(Of BlockElement)
Наследование
StoryFragmentStoryFragmentStoryFragmentStoryFragment
Атрибуты
Реализации

Примеры

В следующем примере показан <StoryFragment> частью Формат XPS (XML Paper Specification)XML Paper Specification (XPS) документа.The following example shows the <StoryFragment> part of an Формат XPS (XML Paper Specification)XML Paper Specification (XPS) document.

<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 в XPSXPS документа является приблизительным аналогом статьи в газете или журнале.An XPS story in an XPSXPS document is roughly analogous to a story in a newspaper or magazine. Она представляет собой текст и графическое содержимое, обычно на один раздел, в одной XPSXPS документа.It is a passage of text and graphic content, usually on a single topic, within a single XPSXPS document. Как правило он занимает несколько страниц, но может быть меньше страницы как врезка - текст в рамке - журнала.Typically, it spans multiple pages, but it can be shorter than a page like a sidebar - boxed story - in a magazine. Статьи также может быть дискретное как первой странице газеты с продолжением на странице 4.A story can also be discontinuous like a front page newspaper story that is continued on page 4. Следовательно Данная страница может иметь более одной статьи и частей нескольких статей.Consequently, a given page can have more than one story and parts of more than one story. Верхний или нижний колонтитул также — это особый тип истории, который полностью заключен на одной странице.A header or footer is also a special kind of story that is entirely contained on a single page.

Объект StoryFragment представляет все или часть истории.A StoryFragment represents all or a portion of a story. Он не может занимать более одной страницы, но он может занимать всю страницу или поделиться страницей с других фрагментах.It can never span more than one page, but it can occupy the whole of a page or share a page with other fragments. Если статья занимает несколько страниц, каждая часть запроса на каждой странице представляет собой отдельный фрагмент.If a story is on more than one page, each part of it on each page is a separate fragment. Хотя статьи могут раздельно размещенных фрагментов, фрагмент может сам быть дискретное.Although stories can have discontinuous sets of fragments, no fragment can itself be discontinuous.

Только StoryFragments элемент может быть родителем StoryFragment.Only a StoryFragments element can be a parent of a StoryFragment. Расположение StoryBreak элементы внутри StoryFragment показывает историю содержится в нескольких фрагментов, если дополнительные фрагменты предшествовать или следовать текущего фрагмента.The location of the StoryBreak elements within a StoryFragment indicates if the story is contained in multiple fragments, and if the additional fragments either precede or follow the current fragment.

При StoryFragment заканчивается середине некоторые структурного элемента; say <TableRowGroupStructure>, затем XPSXPS документы приложения необходимо добавить соответствующий закрывающий тег для элемента (в данном случае </TableRowGroupStructure>) перед </StoryFragment> тег, даже Однако структура продолжается в более поздней версии фрагмент.When a StoryFragment ends in the middle of some structural element; say a <TableRowGroupStructure>, then XPSXPS document-producing applications must insert an appropriate end tag for the element (in this case </TableRowGroupStructure>) before the </StoryFragment> tag, even though the structure is being continued in a later fragment. (Это необходимо, чтобы убедиться, что дерево элементов в пределах StoryFragment допустимый формат XML.) Фрагмент, который продолжает историю должен начинаться с открывающего тега для прерванной структуры.(This is necessary to ensure that the element tree within the StoryFragment is valid XML.) The fragment that continues the story must begin with an opening tag for the interrupted structure. Полное дерево прерванных структур должны обрабатываться так же (за одним исключением, о котором рассказывается ниже): Закрывающие теги должны добавляться для каждого тега начальных выше точки прерывания.The entire tree of interrupted structures must be treated the same way (with one exception, discussed below): End tags must be added for every unmatched start tag above the point of interruption.

Исключение применяется, если История прерывания следует сразу же после </TableCellStructure> тег, то создатель приложения необходимо вставить структуру ячейку пустой таблицы (<TableCellStructure></TableCellStructure>) в соответствующей точке фрагмент, который продолжает историю.The exception applies when the story interruption comes immediately after a </TableCellStructure> tag, then the producing application must insert an empty table cell structure (<TableCellStructure></TableCellStructure>) at the corresponding point in the fragment that continues the story. Это необходимо, чтобы потребляющие приложения, которые необходимо объединить все фрагменты определенной статьи для этого можно использовать простой алгоритм.This is necessary so that consuming applications that need to merge all fragments of a given story can use a simple algorithm to do this.

Предположим, например, приложение желает добавить следующие материалы для XPSXPS документа:Assume, for example, that an application wanted to add the following material to an XPSXPS document:

<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», приложение должно создать разбиения, как показано в следующем примере:If a page break forces an end to the fragment just after the </TableCellStructure> for "SomeContent", the application must create the split as shown in the following example:

<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>  

Приложение, считывающее документа может потребоваться объединить это содержимое.An application that reads the document might need to merge this content. Рассмотрим, например, с помощью средства просмотра XPS Копировать всю статью в буфер обмена кнопку; или XPS для слепых приложение, которое передается истории синтезатор голоса.Consider, for example, an XPS viewer with a Copy Whole Story to Clipboard button; or an XPS for the Blind application that passed stories to a voice synthesizer. Некоторые приложения, которые считывают документа может потребоваться провести слияние подмножество фрагменты статьи.Some applications that read the document may need to merge a subset of the fragments of a story. Например, это функция, которая копирует всего абзаца в буфер обмена, щелкнув triple-это должен сделать слияния каждый раз, когда разрывы страниц, занятых абзаца, потому что такого абзаца будет разделен между двумя StoryFragments.For example, a feature that copies a whole paragraph to the clipboard by triple-clicking it would need to do a merge whenever the paragraph spanned a page break, because such a paragraph would be split between two StoryFragments.

Для слияния этот алгоритм использовать:To merge use this algorithm:

  1. Удалить </StoryFragment> в конце первый фрагмент будет объединен и удалить <StoryFragment> в начале второй.Delete the </StoryFragment> from the end of the first fragment to be merged and delete the <StoryFragment> from the beginning of the second.

  2. Если последний закрывающий тег первого фрагмента имеет тот же тип как первый открывающий тег второй фрагмент (и они не <NamedElement> тегов), удалите их оба.If the last closing tag of the first fragment is of the same type as the first opening tag of the second fragment (and they are not <NamedElement> tags), delete them both.

  3. Повторите шаг 2 до двух фрагментов в либо из этих состояний:Repeat step 2 until the two fragments are in either of these states:

    • Больше не существует соответствия типов между последней закрывающий тег первого фрагмента первый тег начала второго фрагмента.There is no longer a type match between the last end tag of the leading fragment the first start tag of the trailing fragment.

    • Последний конечный тег начальные fragment первый тег начала второго фрагмента оба <NamedElement> теги.The last end tag of the leading fragment the first start tag of the trailing fragment are both <NamedElement> tags.

В приведенном выше примере Если пустая ячейка еще не добавлена в генерирующее приложение затем слияния фрагментов должен создать таблицу, первая строка которой была только одна ячейка, содержащая «SomeContent» и «MoreContent» ссылки вместо исходного сначала строки с двумя ячейками, каждая из которых содержит единственную ссылкуIn the example above, if the empty cell had not been added by the producing application, then a merger of the fragments would produce a table whose first row had only one cell containing both the "SomeContent" and "MoreContent" references instead of the original first row with two cells, each containing a single reference

При слиянии весь материал, алгоритм должен повторяться для каждого последующего фрагмента, который является частью той же статье.When the entire story is being merged, the algorithm should be repeated for each subsequent fragment that is part of the same story. Фрагменты, которые принадлежат истории индексируются в <Story> элемент.The fragments that belong to a story are indexed in the <Story> element. См. в разделе 9.1.15 Формат XPS (XML Paper Specification)XML Paper Specification (XPS) спецификации, который можно получить в XPS: Загрузка спецификаций и лицензий.See section 9.1.15 of the Формат XPS (XML Paper Specification)XML Paper Specification (XPS) specification which you can obtain at XPS: Specification and License Downloads. Последний фрагмент для определенной статьи будет иметь StoryBreak как его последний дочерний элемент.The last fragment for a given story will have a StoryBreak element as its last child.

Конструкторы

StoryFragment() StoryFragment() StoryFragment() StoryFragment()

Инициализирует новый экземпляр класса StoryFragment.Initializes a new instance of the StoryFragment class.

Свойства

FragmentName FragmentName FragmentName FragmentName

Возвращает или задает имя фрагмента статьи.Gets or sets the name of the story fragment.

FragmentType FragmentType FragmentType FragmentType

Возвращает или задает тип фрагмента.Gets or sets the type of fragment.

StoryName StoryName StoryName StoryName

Возвращает или задает имя статьи.Gets or sets the name of the story.

Методы

Add(BlockElement) Add(BlockElement) Add(BlockElement) Add(BlockElement)

Добавляет блок во фрагмент истории.Add a block to the story fragment.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)

Явные реализации интерфейса

IAddChild.AddChild(Object) IAddChild.AddChild(Object) IAddChild.AddChild(Object) IAddChild.AddChild(Object)

Данный член предназначен для поддержки платформы .NET Framework и не должен вызываться напрямую из кода приложения.This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

IAddChild.AddText(String) IAddChild.AddText(String) IAddChild.AddText(String) IAddChild.AddText(String)

Добавляет текстовое содержимое узла в объект.Adds the text content of a node to the object.

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Этот метод не был реализован.This method has not been implemented.

IEnumerable<BlockElement>.GetEnumerator() IEnumerable<BlockElement>.GetEnumerator() IEnumerable<BlockElement>.GetEnumerator() IEnumerable<BlockElement>.GetEnumerator()

Этот метод не был реализован.This method has not been implemented.

Методы расширения

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Возвращает объект DataTable, содержащий копии объектов DataRow при заданном входном объекте IEnumerable<T> и универсальном параметре T, равном DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Копирует объекты DataRow в указанный объект DataTable с заданным входным объектом IEnumerable<T>, где универсальный параметр T имеет значение DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Преобразует IEnumerable для IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию элементов, содержащую предков каждого узла в исходной коллекции.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>)

Возвращает коллекцию подчиненных узлов каждого документа и элемента в исходной коллекции.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>)

Возвращает коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

Возвращает коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName)

Возвращает отфильтрованную коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.Returns a filtered collection of the child elements of every element and document in the source collection. В коллекцию включаются только элементы, соответствующие XName.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>)

Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>)

Возвращает коллекцию дочерних узлов каждого документа и элемента в исходной коллекции.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>)

Удаление каждого узла в исходной коллекции из родительского узла.Removes every node in the source collection from its parent node.

Применяется к

Дополнительно