PDA

View Full Version : جابجا کردن اسکرول FlowDocumentScrollViewer



hamidkh
پنج شنبه 04 آبان 1391, 12:26 عصر
سلام
من میخوام که اسکرول رو بیارم ابتدای یه قسمتی از متن FlowDocumentScrollViewer. یه کدی پیدا کردم که اسکرول رو تغییر میده ولی نتونستم ازش استفاد کنم.

public T GetChild<T>(DependencyObject parent) where T : DependencyObject
{
int childCount = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < childCount; i++)
{
DependencyObject child = VisualTreeHelper.GetChild(parent, i);
if (child is T) return (T)child;
T childLabel = GetChild<T>(child);
if (childLabel != null) return childLabel;
}
return default(T);
}

ScrollViewer sv = GetChild<ScrollViewer>(flowDocumentScrollViewer1);
if (sv != null)
sv.ScrollToVerticalOffset(1000);


این پارامتر ScrollToVerticalOffset رو نمیدونم چطور حساب کنم که درست بره ابتدای جایی که میخوام. با اون آفستی هم که با استفاده از TextPointer آز ابتدای متن به دست می آوریم هم یکسان نیس.
اگر راهنمایی کنید ممنون میشم. خیلی ضروریه.

hamidkh
شنبه 06 آبان 1391, 08:01 صبح
جوابش رو پیدا کردم

FrameworkContentElement e = t.Parent as FrameworkContentElement;
if (e != null)
e.BringIntoView();
t همون TextPointer مورد نظر که میخوایم اسکرول به ابتداش بره.