Probé la respuesta de Chris Bova, pero tenía un par de problemas:
- La selección de texto no funcionaba correctamente
- 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:
- Nombre del documento de flujo (es decir FlowDocument)
- Nombre del tema antes del párrafo que desea ocultar (es decir previousBlock)
- 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);
}
}
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? –