如何给XAML中的小节(列表项\段落)加小数?
How to add a decimal to a sub section (list item \ paragraph) in XAML?
我正在尝试在 XAML 中创建一个分层编号列表,其中包含的内部列表编号是 parent 的编号。
即
一些文字
1.1 子列表项
1.2 子列表项
1.3 子列表项
但我找不到如何执行此操作。我能得到的最好的是单独编号的列表:
- 一些文字
- 子列表项
- 子列表项
- 子列表项
the desired outcome
这是现在的样子:
only 1. appears and not 1.1
这是 XAML 代码(我想要 1.1,其中显示“此处为随机文本”):
<List MarkerStyle="Decimal">
<ListItem>
<Paragraph FontWeight="Bold" Margin="0,8,0,8">
<Span>
<Run>Definitions</Run>
</Span>
</Paragraph>
<List MarkerStyle="Decimal">
<ListItem Margin="15,0,0,0">
<Paragraph Margin="0,8,0,8">
<Span>
<Run>“</Run>
</Span>
<Span FontWeight="Bold">
<Run>Bug Fix</Run>
</Span>
<Span>
<Run>” "Random text here".</Run>
</Span>
</Paragraph>
</ListItem>
</List>
red arrow points to where the 1.1 should be
据我所知,您尝试使用 MarkerStyle
的方式是不可能的。你只能通过这种方式实现嵌套 List
,而你说这不是你想要的。
在我看来,最好的办法是伪造标记(MarkerStyle
设置为 None
并且标记包含在文本中):
<List MarkerStyle="None">
<ListItem>
<Paragraph FontWeight="Bold" Margin="0,8,0,8">
<Span>
<Run>1. Definitions</Run>
</Span>
</Paragraph>
<List MarkerStyle="None">
<ListItem Margin="15,0,0,0">
<Paragraph Margin="0,8,0,8">
<Span>
<Run>“</Run>
</Span>
<Span FontWeight="Bold">
<Run>Bug Fix</Run>
</Span>
<Span>
<Run>”1.1 "Random text here".</Run>
</Span>
</Paragraph>
</ListItem>
</List>
</ListItem>
</List>
这在 XAML 中很难看,但在 C# 中可以更漂亮(填充 List
时自动为项目编号),即:
// Autonumber concats "i.j" (or "i." if j is null) and "cxyc"
l.ListItems.Add(new ListItem(new Paragraph(new Span(new Run(AutoNumber("cxyc",i,j))))));
我正在尝试在 XAML 中创建一个分层编号列表,其中包含的内部列表编号是 parent 的编号。 即
一些文字
1.1 子列表项
1.2 子列表项
1.3 子列表项
但我找不到如何执行此操作。我能得到的最好的是单独编号的列表:
- 一些文字
- 子列表项
- 子列表项
- 子列表项
the desired outcome
这是现在的样子: only 1. appears and not 1.1
这是 XAML 代码(我想要 1.1,其中显示“此处为随机文本”):
<List MarkerStyle="Decimal">
<ListItem>
<Paragraph FontWeight="Bold" Margin="0,8,0,8">
<Span>
<Run>Definitions</Run>
</Span>
</Paragraph>
<List MarkerStyle="Decimal">
<ListItem Margin="15,0,0,0">
<Paragraph Margin="0,8,0,8">
<Span>
<Run>“</Run>
</Span>
<Span FontWeight="Bold">
<Run>Bug Fix</Run>
</Span>
<Span>
<Run>” "Random text here".</Run>
</Span>
</Paragraph>
</ListItem>
</List>
red arrow points to where the 1.1 should be
据我所知,您尝试使用 MarkerStyle
的方式是不可能的。你只能通过这种方式实现嵌套 List
,而你说这不是你想要的。
在我看来,最好的办法是伪造标记(MarkerStyle
设置为 None
并且标记包含在文本中):
<List MarkerStyle="None">
<ListItem>
<Paragraph FontWeight="Bold" Margin="0,8,0,8">
<Span>
<Run>1. Definitions</Run>
</Span>
</Paragraph>
<List MarkerStyle="None">
<ListItem Margin="15,0,0,0">
<Paragraph Margin="0,8,0,8">
<Span>
<Run>“</Run>
</Span>
<Span FontWeight="Bold">
<Run>Bug Fix</Run>
</Span>
<Span>
<Run>”1.1 "Random text here".</Run>
</Span>
</Paragraph>
</ListItem>
</List>
</ListItem>
</List>
这在 XAML 中很难看,但在 C# 中可以更漂亮(填充 List
时自动为项目编号),即:
// Autonumber concats "i.j" (or "i." if j is null) and "cxyc"
l.ListItems.Add(new ListItem(new Paragraph(new Span(new Run(AutoNumber("cxyc",i,j))))));