代码之家  ›  专栏  ›  技术社区  ›  Joe White

如何在流程文档中隐藏段落?

  •  11
  • Joe White  · 技术社区  · 15 年前

    是否有任何方法可以使用数据绑定来显示或隐藏流程文档中的段落?(我想使用MVVM,但以流程文档作为我的视图。)

    段落没有可见性属性。我不知道还要找什么。

    3 回复  |  直到 11 年前
        1
  •  2
  •   tster    11 年前

    我试过克里斯·波娃的回答,但有几个问题:

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

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

    步骤如下:

    1. 命名流程文档(即流程文档)
    2. 将项目命名在要隐藏的段落之前(即previousblock)
    3. 命名要隐藏的段落(即hide paragraph)

    然后:

            if (<hide paragraph>)
            {
                if (previousBlock.NextBlock == hideParagraph)
                {
                    flowDocument.Blocks.Remove(hideParagraph);
                }
            }
            else
            {
                if (previousBlock.NextBlock != hideParagraph)
                {
                    flowDocument.Blocks.InsertAfter(previousBlock, hideParagraph);
                }
            }
    
        2
  •  3
  •   Chris Bova    15 年前

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

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

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

        3
  •  0
  •   Will    15 年前

    我能想到的选择…

    1. 隐藏段落内容(不要在模型中包含段落)
    2. 扩展段落(或其基类之一)并为IsVisible提供依赖属性