How can I hide a Paragraph in a FlowDocument?

后端 未结 4 1024
我寻月下人不归
我寻月下人不归 2021-01-11 13:33

Is there any way to use databinding to show or hide a Paragraph within a FlowDocument? (I want to use MVVM, but with a FlowDocument as my view.)

Paragraph doesn\'t h

相关标签:
4条回答
  • 2021-01-11 14:13

    Options I can think of...

    1. Hide the content of the paragraph (don't include the paragraph in your model)
    2. Extend Paragraph (or one of its base classes) and provide a dependency property for IsVisible
    0 讨论(0)
  • 2021-01-11 14:14

    I had the exact same problem and handled it successfully by wrapping the content of the ListItem in a InlineUIContainer, like so:

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

    From here you can set the visbility of "HideMe" in code or through a binding.

    0 讨论(0)
  • 2021-01-11 14:24

    Set fontsize to 0.004. You can use a style data trigger if necessary.

    0 讨论(0)
  • 2021-01-11 14:30

    I tried Chris Bova's answer, but it had a couple problems:

    1. Text selection didn't work right
    2. The text inside didn't flow like a paragraph

    My solution was to add and remove the paragraph from the flow document.

    The steps are:

    1. Name the flow document (ie flowDocument)
    2. Name the item before the paragraph you want to hide (ie previousBlock)
    3. Name the paragraph you want to hide (ie hideParagraph)

    Then:

            if (<hide paragraph>)
            {
                if (previousBlock.NextBlock == hideParagraph)
                {
                    flowDocument.Blocks.Remove(hideParagraph);
                }
            }
            else
            {
                if (previousBlock.NextBlock != hideParagraph)
                {
                    flowDocument.Blocks.InsertAfter(previousBlock, hideParagraph);
                }
            }
    
    0 讨论(0)
提交回复
热议问题