Si vous garder une trace des blocs sur la FlowDocument contenue dans le FlowDocumentReader, que vous pouvez simplement utiliser:
// Getting a block by index
YourReader.Document.Blocks.ElementAt(index).BringIntoView();
// Showing Last Block
YourReader.Document.Blocks.LastBlock.BringIntoView();
// Showing the last Inline
(YourReader.Document.Blocks.LastBlock as Paragraph).Inlines.LastInline.BringIntoView();
Cela fonctionne seulement sur les ViewingModes page du FlowDocumentReader.
si vous whould souhaitez le faire sur le mode de défilement, vous devez parcourir l'arbre visuel et rechercher le ScrollViewer, somthing comme ceci:
public static ScrollViewer FindScroll(Visual visual)
{
if (visual is ScrollViewer)
return visual as ScrollViewer;
ScrollViewer searchChiled = null;
DependencyObject chiled;
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(visual); i++)
{
chiled = VisualTreeHelper.GetChild(visual, i);
if (chiled is Visual)
searchChiled = FindScroll(chiled as Visual);
if (searchChiled != null)
return searchChiled;
}
return null;
}
ScrollViewer scroller = FindScroll(YourReader as Visual);
if (scroller != null)
(scroller as ScrollViewer).ScrollToBottom();
merci pour la réponse, laissez-moi vérifier dans lecteur. – Ershad
Merci encore une fois. Je vais utiliser FlowDocumentPageViewer .. – Ershad