12

有没有办法使用数据绑定来显示或隐藏 FlowDocument 中的段落?(我想使用 MVVM,但以 FlowDocument 作为我的视图。)

段落没有可见性属性。我不确定还要寻找什么。

4

4 回答 4

3

我遇到了完全相同的问题,并通过将 ListItem 的内容包装在 InlineUIContainer 中成功地处理了它,如下所示:

  <ListItem>
    <Paragraph>
      <InlineUIContainer>
        <TextBlock x:Name="HideMe" Visibility="Collapsed">
          <Hyperlink NavigateUri="...">Components</Hyperlink>
        </TextBlock>
      </InlineUIContainer>
    </Paragraph>
  </ListItem>

从这里您可以在代码中或通过绑定设置“HideMe”的可见性。

于 2009-11-05T14:23:24.620 回答
3

我尝试了 Chris Bova 的回答,但它有几个问题:

  1. 文本选择不正确
  2. 里面的文字不像段落那样流动

我的解决方案是在流程文档中添加和删除段落。

步骤是:

  1. 命名流文档(即flowDocument)
  2. 在要隐藏的段落之前命名项目(即previousBlock)
  3. 为要隐藏的段落命名(即 hideParagraph)

然后:

        if (<hide paragraph>)
        {
            if (previousBlock.NextBlock == hideParagraph)
            {
                flowDocument.Blocks.Remove(hideParagraph);
            }
        }
        else
        {
            if (previousBlock.NextBlock != hideParagraph)
            {
                flowDocument.Blocks.InsertAfter(previousBlock, hideParagraph);
            }
        }
于 2013-09-28T18:40:20.850 回答
0

我能想到的选项...

  1. 隐藏段落的内容(不要在模型中包含该段落)
  2. 扩展 Paragraph(或其基类之一)并为 IsVisible 提供依赖属性
于 2009-08-10T12:48:17.207 回答
0

将字体大小设置为 0.004。如有必要,您可以使用样式数据触发器。

于 2020-11-20T16:59:04.370 回答