流文档容器FlowDocumentScrollViewer
流文档容器FlowDocumentScrollViewer类,发现没有滚动到文档最后或最前的方法,所以自定义,添加这两个方法。具体实现思路:在控件应用模板后,在模板中查询子控件ScrollViewer,调用其对应的滚动方法。其中查找子控件的方法在我的另外文章中可以找到。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Interop;
using System.Windows.Controls;
namespace Zbsoft.WpfControls
{
/// <summary>
/// 流文档容器类
/// </summary>
public class ZbFlowDocumentScrollViewer : FlowDocumentScrollViewer
{
/// <summary>
/// 容器模板中的ScrollViewer控件
/// </summary>
private ScrollViewer sv;
/// <summary>
///
/// </summary>
public ZbFlowDocumentScrollViewer()
{
}
/// <summary>
/// 在应用模板时,查找滚动条,并赋给sv,以供调用
/// </summary>
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
this.sv = ZbExternt.FindVisualChild<ScrollViewer>(this);
}
/// <summary>
/// 滚动到最后
/// </summary>
public void ScrollToEnd()
{
if (this.sv != null)
sv.ScrollToEnd();
}
/// <summary>
/// 滚动到最前面
/// </summary>
public void ScrollToHome()
{
if (this.sv != null)
this.sv.ScrollToHome();
}
}
}