protected override void Write(XamlMarkdownWriter renderer, CodeInline code)
        {
            renderer.WriteStartObject(typeof(Span));
            renderer.WriteResourceMember(null, MarkdownXamlStyle.Code);

            renderer.WriteStartItems(nameof(Span.Inlines), true);
            renderer.WriteText(code.Content);
            renderer.WriteEndItems();
            renderer.WriteEndObject();
        } // proc Write
예제 #2
0
        protected override void Write(XamlMarkdownWriter renderer, MdTable table)
        {
            renderer.WriteStartObject(typeof(WpfTable));
            renderer.WriteResourceMember(null, MarkdownXamlStyle.Table);
            var t = new WpfTable();

            renderer.WriteStartItems(nameof(WpfTable.Columns));
            foreach (var col in table.ColumnDefinitions)
            {
                renderer.WriteStartObject(typeof(WpfTableColumn));
                renderer.WriteMember(nameof(WpfTableColumn.Width),
                                     (col?.Width ?? 0) != 0
                        ? new GridLength(col.Width, GridUnitType.Star)
                        : GridLength.Auto
                                     );
                renderer.WriteEndObject();
            }
            renderer.WriteEndItems();

            renderer.WriteStartItems(nameof(WpfTable.RowGroups));
            renderer.WriteStartObject(typeof(WpfTableRowGroup));
            renderer.WriteStartItems(nameof(WpfTableRowGroup.Rows));

            foreach (var c in table)
            {
                var row = (MdTableRow)c;
                renderer.WriteStartObject(typeof(WpfTableRow));
                if (row.IsHeader)
                {
                    renderer.WriteResourceMember(null, MarkdownXamlStyle.TableHeader);
                }
                renderer.WriteStartItems(nameof(WpfTableRow.Cells));

                for (var i = 0; i < row.Count; i++)
                {
                    var cell = (MdTableCell)row[i];
                    renderer.WriteStartObject(typeof(WpfTableCell));
                    renderer.WriteResourceMember(null, MarkdownXamlStyle.TableCell);

                    if (cell.ColumnSpan > 1)
                    {
                        renderer.WriteMember(nameof(WpfTableCell.ColumnSpan), cell.ColumnSpan);
                    }
                    if (cell.RowSpan > 1)
                    {
                        renderer.WriteMember(nameof(WpfTableCell.RowSpan), cell.RowSpan);
                    }

                    var columnIndex = cell.ColumnIndex < 0 || cell.ColumnIndex >= table.ColumnDefinitions.Count ? i : cell.ColumnIndex;
                    columnIndex = columnIndex >= table.ColumnDefinitions.Count ? table.ColumnDefinitions.Count - 1 : columnIndex;
                    var alignment = table.ColumnDefinitions[columnIndex].Alignment;
                    if (alignment.HasValue)
                    {
                        switch (alignment)
                        {
                        case TableColumnAlign.Center:
                            renderer.WriteMember(nameof(WpfTableCell.TextAlignment), TextAlignment.Center);
                            break;

                        case TableColumnAlign.Right:
                            renderer.WriteMember(nameof(WpfTableCell.TextAlignment), TextAlignment.Right);
                            break;

                        case TableColumnAlign.Left:
                            renderer.WriteMember(nameof(WpfTableCell.TextAlignment), TextAlignment.Left);
                            break;
                        }
                    }

                    renderer.WriteItems(cell);

                    renderer.WriteEndObject();
                }

                renderer.WriteEndItems();
                renderer.WriteEndObject();
            }

            renderer.WriteEndItems();
            renderer.WriteEndObject();
            renderer.WriteEndItems();

            renderer.WriteEndObject();
        } // proc Write