CalDavSynchronizer.Conversions.Msft.HtmlFromXamlConverter.WriteElement C# (CSharp) Метод

WriteElement() приватный статический Метод

Converts a xaml element into an appropriate html element.
private static WriteElement ( XmlTextReader xamlReader, XmlTextWriter htmlWriter, StringBuilder inlineStyle ) : void
xamlReader System.Xml.XmlTextReader /// On entry this XmlTextReader must be on Element start tag; /// on exit - on EndElement tag. ///
htmlWriter System.Xml.XmlTextWriter /// May be null, in which case we are skipping xaml content /// without producing any html output ///
inlineStyle StringBuilder /// StringBuilder used for collecting css properties for inline STYLE attributes on every level. ///
Результат void
    private static void WriteElement(XmlTextReader xamlReader, XmlTextWriter htmlWriter, StringBuilder inlineStyle)
    {
      Debug.Assert(xamlReader.NodeType == XmlNodeType.Element);

      if (htmlWriter == null)
      {
        // Skipping mode; recurse into the xaml element without any output
        WriteElementContent(xamlReader, /*htmlWriter:*/null, null);
      }
      else
      {
        string htmlElementName = null;

        switch (xamlReader.Name)
        {
          case "Run" :
          case "Span":
            htmlElementName = "SPAN";
            break;
          case "InlineUIContainer":
            htmlElementName = "SPAN";
            break;
          case "Bold":
            htmlElementName = "B";
            break;
          case "Italic" :
            htmlElementName = "I";
            break;
          case "Paragraph" :
            htmlElementName = "P";
            break;
          case "BlockUIContainer":
            htmlElementName = "DIV";
            break;
          case "Section":
            htmlElementName = "DIV";
            break;
          case "Table":
            htmlElementName = "TABLE";
            break;
          case "Table.Columns":
            htmlElementName = "COLGROUP";
            break;
          case "TableColumn":
            htmlElementName = "COL";
            break;
          case "TableRowGroup" :
            htmlElementName = "TBODY";
            break;
          case "TableRow" :
            htmlElementName = "TR";
            break;
          case "TableCell" :
            htmlElementName = "TD";
            break;
          case "List" :
            string marker = xamlReader.GetAttribute("MarkerStyle");
            if (marker == null || marker == "None" || marker == "Disc" || marker == "Circle" || marker == "Square" || marker == "Box")
            {
              htmlElementName = "UL";
            }
            else
            {
              htmlElementName = "OL";
            }
            break;
          case "ListItem" :
            htmlElementName = "LI";
            break;
          case "Hyperlink":
            htmlElementName = "A";
            break;
          default:
            htmlElementName = null; // Ignore the element
            break;
        }

        if (htmlWriter != null && htmlElementName != null)
        {
          htmlWriter.WriteStartElement(htmlElementName);

          WriteFormattingProperties(xamlReader, htmlWriter, inlineStyle);

          WriteElementContent(xamlReader, htmlWriter, inlineStyle);

          htmlWriter.WriteEndElement();
        }
        else
        {
          // Skip this unrecognized xaml element
          WriteElementContent(xamlReader, /*htmlWriter:*/null, null);
        }
      }
    }