/// <summary>
    /// Parses a Visual element.
    /// </summary>
    Visual ParseVisual()
    {
      bool isEmptyElement = this.reader.IsEmptyElement;
      Visual visual = new Visual();
      while (MoveToNextAttribute())
      {
        switch (this.reader.Name)
        {
          default:
            UnexpectedAttribute(this.reader.Name);
            break;
        }
      }
      if (!isEmptyElement)
      {
        MoveToNextElement();
        while (this.reader.IsStartElement())
        {
          XpsElement element = null;
          switch (this.reader.Name)
          {
            case "Canvas":
              element = ParseCanvas();
              visual.Content.Add(element);
              element.Parent = visual;
              break;

            case "Path":
              element = ParsePath();
              visual.Content.Add(element);
              element.Parent = visual;
              break;

            case "Glyphs":
              element = ParseGlyphs();
              visual.Content.Add(element);
              element.Parent = visual;
              break;

            default:
              Debugger.Break();
              break;
          }
        }
      }
      MoveToNextElement();
      return visual;
    }
Esempio n. 2
0
 /// <summary>
 /// Writes a Visual to the content stream.
 /// </summary>
 internal void WriteVisual(Visual visual) // Is internal for VisualBrush
 {
   WriteSaveState("begin Visual", null);
   WriteElements(visual.Content);
   WriteRestoreState("end Visual", null);
 }