2009-08-10 10 views

Respuesta

0

opciones que se me ocurre ...

  1. ocultar el contenido del párrafo (no incluya el párrafo en su modelo)
  2. Extender el párrafo (o una de sus clases base) y proporcionar una propiedad de dependencia de IsVisible
+2

Si el Párrafo no tiene contenido, sigue ocupando una línea completa de espacio vertical, que prefiero evitar. En cuanto a agregar una propiedad IsVisible, ¿cómo se implementaría? –

2

yo tenía el mismo problema y lo manejó con éxito al envolver el contenido de la ListItem en un InlineUIContainer, así:

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

Desde aquí puede establecer la visibilidad de "HideMe" en el código o mediante un enlace.

2

Probé la respuesta de Chris Bova, pero tenía un par de problemas:

  1. La selección de texto no funcionaba correctamente
  2. El interior del texto no fluía como un párrafo

Mi La solución fue agregar y eliminar el párrafo del documento de flujo.

Los pasos son:

  1. Nombre del documento de flujo (es decir FlowDocument)
  2. Nombre del tema antes del párrafo que desea ocultar (es decir previousBlock)
  3. Nombre del párrafo que desea ocultar (es decir hideParagraph)

Entonces:

 if (<hide paragraph>) 
     { 
      if (previousBlock.NextBlock == hideParagraph) 
      { 
       flowDocument.Blocks.Remove(hideParagraph); 
      } 
     } 
     else 
     { 
      if (previousBlock.NextBlock != hideParagraph) 
      { 
       flowDocument.Blocks.InsertAfter(previousBlock, hideParagraph); 
      } 
     } 
Cuestiones relacionadas