WPF基础四:UI的相关类 (7) Control的其他派生类

目录

2.7 Control的其他派生

2.7.1 Calendar

2.7.2 Control

2.7.3 DatePicker

2.7.4 DocumentViewer

2.7.5 FlowDocumentReader

2.7.6 FlowDocumentScrollViewer

2.7.7 GridSplitter

2.7.8 KeyTipControl

2.7.9 ProgressBar

2.7.10 RichTextBox

2.7.11 Separator

2.7.12 Slider

2.7.13 StickyNoteControl

2.7.14 TextBox

2.7.15 DocumentViewerBase

2.7.16 Thumb

2.7.17 RangeBase

2.7.18 TextBoxBase


2.7 Control的其他派生


2.7.1 Calendar

代表一个控件,此控件允许用户使用可视的日历显示来选择日期。

Calendar控件可以单独使用,也可以作为DatePicker 控件的下拉部分使用 。 有关详细信息,请参阅 DatePicker

Calendar仅支持公历。

下表提供了有关与Calendar 相关联的任务的信息 。

注解
任务实现
使 Calendar 显示月份、整年或十年。将 DisplayMode 属性设置为月份、年份或十年。
指定用户是否可以选择日期、日期范围或多个日期范围。使用 SelectionMode
指定不能选择的日期。使用 BlackoutDates 属性。
指定显示的日期范围 Calendar 。使用 DisplayDateStart 和 DisplayDateEnd 属性。
指定是否突出显示当前日期。使用 IsTodayHighlighted 属性。 默认情况下, IsTodayHighlighted 为 true 。
更改的大小 Calendar 。使用 Viewbox 或将属性设置 LayoutTransform 为 ScaleTransform 。 请注意,如果您设置的 Width 和 Height 属性 Calendar ,则实际日历不会更改其大小。

Calendar控件使用鼠标或键盘提供基本导航。 下表总结了键盘导航。

表 2
键组合DisplayMode操作
箭头MonthSelectedDate如果 SelectionMode 属性未设置为,则更改属性 None 。
箭头Year更改属性的月份 DisplayDate 。 请注意,不 SelectedDate 会更改。
箭头Decade更改的年份 DisplayDate 。 请注意,不 SelectedDate 会更改。
SHIFT + 箭头Month如果 SelectionMode 未设置为 SingleDate 或 None ,则扩展选定日期的范围。
HomeMonth将更改 SelectedDate 为当月的第一天。
HomeYear将的月份更改为一年中的 DisplayDate 第一个月。 不 SelectedDate 会更改。
HomeDecade将的年更改 DisplayDate 为十年的第一年。 不 SelectedDate 会更改。
EndMonth将更改 SelectedDate 为当前月份的最后一天。
EndYear将中的月更改 DisplayDate 为一年中的最后一个月。 不 SelectedDate 会更改。
EndDecade将的年更改 DisplayDate 为十年的最后一年。 不 SelectedDate 会更改。
CTRL + 向上箭头任意切换到下一个更大的 DisplayMode 。 如果 DisplayMode 已存在 Decade ,则不执行任何操作。
CTRL + 向下箭头任意切换到下一个较小的 DisplayMode 。 如果 DisplayMode 已存在 Month ,则不执行任何操作。
空格键或 ENTERYear 或 Decade切换 DisplayMode 到 Month 或 Year 由重点项表示。

自定义日历控件

若要对多个 Calendar 控件应用相同的属性设置,请使用 Style 属性。 您可以修改默认值 ControlTemplate ,为控件指定独特的外观。 有关创建 ControlTemplate 的详细信息,请参阅 通过创建 System.windows.controls.controltemplate> 自定义现有控件的外观。 若要查看特定于 Calendar 的部分和状态,请参阅 日历样式和模板

此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题

Note

设置视觉属性仅在该属性同时存在于控件的默认模板中并且通过使用TemplateBinding进行设置时才有效。您可以在通过创建ControlTemplate定制现有控件的外观的更改控件的视觉结构”部分中找到视觉属性列表。

XAML 对象元素用法

<Calendar .../>  

 

    public class Calendar : Control
    {
        public static readonly System.Windows.DependencyProperty CalendarButtonStyleProperty;
        public static readonly System.Windows.DependencyProperty CalendarDayButtonStyleProperty;
        public static readonly System.Windows.DependencyProperty CalendarItemStyleProperty;
        public static readonly System.Windows.DependencyProperty DisplayDateEndProperty;
        public static readonly System.Windows.DependencyProperty DisplayDateProperty;
        public static readonly System.Windows.DependencyProperty DisplayDateStartProperty;
        public static readonly System.Windows.DependencyProperty DisplayModeProperty;
        public static readonly System.Windows.DependencyProperty FirstDayOfWeekProperty;
        public static readonly System.Windows.DependencyProperty IsTodayHighlightedProperty;
        public static readonly System.Windows.DependencyProperty SelectedDateProperty;
        public static readonly System.Windows.RoutedEvent SelectedDatesChangedEvent;
        public static readonly System.Windows.DependencyProperty SelectionModeProperty;

        //获取标记为不可选择的日期的集合。
        public System.Windows.Controls.CalendarBlackoutDatesCollection BlackoutDates { get; }

        //获取或设置与控件的内部 Style 对象关联的 CalendarButton。
        public System.Windows.Style CalendarButtonStyle { get; set; }

        //获取或设置与控件的内部 Style 对象关联的 CalendarDayButton。
        public System.Windows.Style CalendarDayButtonStyle { get; set; }

        //获取或设置与控件的内部 Style 对象关联的 CalendarItem。
        public System.Windows.Style CalendarItemStyle { get; set; }

        //获取或设置要显示的日期。
        public DateTime DisplayDate { get; set; }

        //获取或设置日历中可用日期范围内的最后一个日期。
        public DateTime? DisplayDateEnd { get; set; }

        //获取或设置日历中第一个可用的日期。
        public DateTime? DisplayDateStart { get; set; }

        //获取或设置一个值,该值指示日历是显示月份、年份还是十年期。
        public System.Windows.Controls.CalendarMode DisplayMode { get; set; }

        //获取或设置被视为一周开始的日期。
        public DayOfWeek FirstDayOfWeek { get; set; }

        //获取或设置一个值,该值指示是否将突出显示当前日期。
        public bool IsTodayHighlighted { get; set; }

        //获取或设置当前选定的日期。
        public DateTime? SelectedDate { get; set; }

        //获取选定日期的集合。
        public System.Windows.Controls.SelectedDatesCollection SelectedDates { get; }

        //获取或设置一个值,该值指示允许哪种类型的选择。
        public System.Windows.Controls.CalendarSelectionMode SelectionMode { get; set; }

        //当应用新模板时生成 Calendar 控件的可视化树。
        public override void OnApplyTemplate();

        //返回 CalendarAutomationPeer 供 Silverlight 自动化基础结构使用的。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //引发 DisplayDateChanged 事件。
        protected virtual void OnDisplayDateChanged(System.Windows.Controls.CalendarDateChangedEventArgs e);

        //引发 DisplayModeChanged 事件。
        protected virtual void OnDisplayModeChanged(System.Windows.Controls.CalendarModeChangedEventArgs e);

        //为在此控件有焦点的情况下用户按任意键时发生的 KeyDown 路由事件提供类处理
        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e);

        //为在此控件有焦点的情况下用户释放任意键时发生的 KeyUp 路由事件提供类处理。
        protected override void OnKeyUp(System.Windows.Input.KeyEventArgs e);

        //引发 SelectedDatesChanged 路由事件。
        protected virtual void OnSelectedDatesChanged(System.Windows.Controls.SelectionChangedEventArgs e);

        //引发 SelectionModeChanged 事件。
        protected virtual void OnSelectionModeChanged(EventArgs e);

        //提供选定日期的文本表示形式。
        public override string ToString();

        //当 DisplayDate 属性更改时发生。
        public event EventHandler<System.Windows.Controls.CalendarDateChangedEventArgs> DisplayDateChanged;

        //当 DisplayMode 属性更改时发生。
        public event EventHandler<System.Windows.Controls.CalendarModeChangedEventArgs> DisplayModeChanged;

        //在更改由 SelectedDates 属性返回的集合时发生。
        public event EventHandler<System.Windows.Controls.SelectionChangedEventArgs> SelectedDatesChanged;

        //当 SelectionMode 更改时发生。
        public event EventHandler<EventArgs> SelectionModeChanged;
    }

 


2.7.2 Control

表示用户界面 (UI) 元素的基类,这些元素使用 ControlTemplate 来定义其外观。

Control类是添加到应用程序中的许多控件的基类。 Control类定义极少的行为; 虽然可将添加 Control 到应用程序,但添加从 Control 继承的控件(如 Button 或ListBox )更常见。

Template属性(即 ControlTemplate )指定 Control 的外观。 如果要更改控件的外观,但保留其功能,则应考虑创建一个新的 ControlTemplate ,而不是创建新类。 有关详细信息,请参阅 样式设置和模板化

如果要创建具有自定义行为的控件并允许其他人自定义其外观,则控件可以从 Control 类继承并定义 ControlTemplate 。 如果要扩展现有控件的行为,可以从继承自的类继承 Control 。

如果一个 ControlControlTemplate,那么它在应用程序中是不可见的,设置以下属性不起作用,除非 ControlTemplate 显式引用它们:

使用这些属性的常用方法是将ControlTemplate 中的元素绑定到属性。 例如,如果希望控件根据Background 属性的值更改颜色,可以将ControlTemplate 中元素的某些属性绑定到 Background 。 使用 TemplateBinding 标记扩展 将控件的属性绑定到ControlTemplate 中的元素 。

Control 重写Focusable 属性的元数据 ,并将其默认设置为 true 。 有关详细信息,请参阅 依赖项属性概述

    public class Control : FrameworkElement
    {
        public static readonly System.Windows.DependencyProperty BackgroundProperty;
        public static readonly System.Windows.DependencyProperty BorderBrushProperty;
        public static readonly System.Windows.DependencyProperty BorderThicknessProperty;
        public static readonly System.Windows.DependencyProperty FontFamilyProperty;
        public static readonly System.Windows.DependencyProperty FontSizeProperty;
        public static readonly System.Windows.DependencyProperty FontStretchProperty;
        public static readonly System.Windows.DependencyProperty FontStyleProperty;
        public static readonly System.Windows.DependencyProperty FontWeightProperty;
        public static readonly System.Windows.DependencyProperty ForegroundProperty;
        public static readonly System.Windows.DependencyProperty HorizontalContentAlignmentProperty;
        public static readonly System.Windows.DependencyProperty IsTabStopProperty;
        public static readonly System.Windows.RoutedEvent MouseDoubleClickEvent;
        public static readonly System.Windows.DependencyProperty PaddingProperty;
        public static readonly System.Windows.RoutedEvent PreviewMouseDoubleClickEvent;
        public static readonly System.Windows.DependencyProperty TabIndexProperty;
        public static readonly System.Windows.DependencyProperty TemplateProperty;
        public static readonly System.Windows.DependencyProperty VerticalContentAlignmentProperty;

        //获取或设置一个用于描述控件背景的画笔。
        public System.Windows.Media.Brush Background { get; set; }

        //获取或设置一个用于描述控件的边框背景的画笔。
        public System.Windows.Media.Brush BorderBrush { get; set; }

        //获取或设置控件的边框宽度。
        public System.Windows.Thickness BorderThickness { get; set; }

        //获取或设置控件的字体系列。
        public System.Windows.Media.FontFamily FontFamily { get; set; }

        //获取或设置字号。
        public double FontSize { get; set; }

        //获取或设置字体在屏幕上紧缩或加宽的程度。
        public System.Windows.FontStretch FontStretch { get; set; }

        //获取或设置字体样式。
        public System.Windows.FontStyle FontStyle { get; set; }

        //获取或设置指定字体的粗细。
        public System.Windows.FontWeight FontWeight { get; set; }

        //获取或设置一个用于描述前景色的画笔。
        public System.Windows.Media.Brush Foreground { get; set; }

        //获取一个值,该值指示控件是否支持滚动。
        protected internal virtual bool HandlesScrolling { get; }

        //获取或设置控件内容的水平对齐方式。
        public System.Windows.HorizontalAlignment HorizontalContentAlignment { get; set; }

        //获取或设置一个值,该值指示是否将某个控件包含在 Tab 导航中。
        public bool IsTabStop { get; set; }

        //获取或设置控件内部的填充边距。
        public System.Windows.Thickness Padding { get; set; }

        //获取或设置一个值,该值决定在用户使用 Tab 键在控件中导航时元素接收焦点的顺序。
        public int TabIndex { get; set; }

        //获取或设置控件模板。
        public System.Windows.Controls.ControlTemplate Template { get; set; }

        //获取或设置控件内容的垂直对齐方式。
        public System.Windows.VerticalAlignment VerticalContentAlignment { get; set; }

        //调用以排列 Control 对象的内容并调整其大小。
        protected override System.Windows.Size ArrangeOverride(System.Windows.Size arrangeBounds);

        //调用以重新测量控件。
        protected override System.Windows.Size MeasureOverride(System.Windows.Size constraint);

        //引发 MouseDoubleClick 路由事件。
        protected virtual void OnMouseDoubleClick(System.Windows.Input.MouseButtonEventArgs e);

        //引发 PreviewMouseDoubleClick 路由事件。
        protected virtual void OnPreviewMouseDoubleClick(System.Windows.Input.MouseButtonEventArgs e);

        //在控件模板发生更改时调用。
        protected virtual void OnTemplateChanged(System.Windows.Controls.ControlTemplate oldTemplate, System.Windows.Controls.ControlTemplate newTemplate);

        //返回 Control 对象的字符串表示形式。
        public override string ToString();

        //在双击或多次单击鼠标按钮时发生。
        public event System.Windows.Input.MouseButtonEventHandler MouseDoubleClick;

        //在用户单击鼠标按钮两次或更多次时发生。
        public event System.Windows.Input.MouseButtonEventHandler PreviewMouseDoubleClick;       
    }

2.7.3 DatePicker

表示一个允许用户选择日期的控件。

DatePicker控件允许用户通过在Calendar 文本字段中键入日期或使用下拉控件来选择日期 。该DatePicker的仅支持公历。

DatePicker控件的许多属性是用于管理其内置的 Calendar ,并且与 Calendar 中的等效属性的功能相同。 特别是,DatePicker.IsTodayHighlighted、  DatePicker.FirstDayOfWeek、 DatePicker.BlackoutDates、 DatePicker.DisplayDateStart 、DatePicker.DisplayDateEnd 、 DatePicker.DisplayDate 和 DatePicker.SelectedDate 属性的功能与其Calendar 对应项的作用相同。 有关详细信息,请参阅 Calendar

用户可以直接在文本字段中键入日期,以设置 Text 属性。 如果 DatePicker 无法将输入的字符串转换为有效的日期,则会引发 DateValidationError 事件。 默认情况下,这会引发异常,但的DateValidationError 事件处理程序可以将 ThrowException 属性设置为 false ,并防止引发异常。

自定义 DatePicker 控件

若要对多个 DatePicker 控件应用相同的属性设置,请使用 Style 属性。 您可以修改 ControlTemplate 默认值,为控件指定独特的外观。 有关创建 ControlTemplate 的详细信息,请参阅 通过创建 System.windows.controls.controltemplate> 自定义现有控件的外观。 若要查看特定于 DatePicker 的部分和状态,请参阅 DatePicker 样式和模板

Note

设置视觉属性仅在该属性同时存在于控件的默认模板中并且通过使用TemplateBinding进行设置时才有效。您可以在通过创建ControlTemplate定制现有控件的外观的更改控件的视觉结构”部分中找到视觉属性列表。

    public class DatePicker : Control
    {
        public static readonly System.Windows.DependencyProperty CalendarStyleProperty;
        public static readonly System.Windows.DependencyProperty DisplayDateEndProperty;
        public static readonly System.Windows.DependencyProperty DisplayDateEndProperty;
        public static readonly System.Windows.DependencyProperty DisplayDateStartProperty;
        public static readonly System.Windows.DependencyProperty FirstDayOfWeekProperty;
        public static readonly System.Windows.DependencyProperty IsDropDownOpenProperty;
        public static readonly System.Windows.DependencyProperty IsTodayHighlightedProperty;
        public static readonly System.Windows.RoutedEvent SelectedDateChangedEvent;
        public static readonly System.Windows.DependencyProperty SelectedDateFormatProperty;
        public static readonly System.Windows.DependencyProperty SelectedDateProperty;
        public static readonly System.Windows.DependencyProperty TextProperty;


        //获取或设置标记为不可选择的日期的集合。
        public System.Windows.Controls.CalendarBlackoutDatesCollection BlackoutDates { get; }

        //获取或设置在呈现日历时使用的样式。
        public System.Windows.Style CalendarStyle { get; set; }

        //获取或设置要显示的日期。
        public DateTime DisplayDate { get; set; }

        //获取或设置要显示的最后一个日期。
        public DateTime? DisplayDateEnd { get; set; }

        //获取或设置要显示的第一个日期。
        public DateTime? DisplayDateStart { get; set; }

        //获取或设置被视为一周开始的日期。
        public DayOfWeek FirstDayOfWeek { get; set; }

        //获取一个值,该值指示 DatePicker 是否具有焦点。
        protected internal override bool HasEffectiveKeyboardFocus { get; }

        //获取或设置一个值,该值指示是打开还是关闭下拉 Calendar。
        public bool IsDropDownOpen { get; set; }

        //获取或设置一个值,该值指示是否突出显示当前日期。
        public bool IsTodayHighlighted { get; set; }

        //获取或设置当前选定的日期。
        public DateTime? SelectedDate { get; set; }

        //获取或设置用于显示选定日期的格式。
        public System.Windows.Controls.DatePickerFormat SelectedDateFormat { get; set; }

        //获取由 DatePicker 显示的文本,或设置选定日期。
        public string Text { get; set; }

        //当应用新模板时生成 DatePicker 控件的可视化树。
        public override void OnApplyTemplate();

        //引发 CalendarClosed 路由事件。
        protected virtual void OnCalendarClosed(System.Windows.RoutedEventArgs e);

        //引发 CalendarOpened 路由事件。
        protected virtual void OnCalendarOpened(System.Windows.RoutedEventArgs e);

        //返回一个 DatePickerAutomationPeer,供自动化基础结构使用。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //引发 DateValidationError 事件。
        protected virtual void OnDateValidationError(System.Windows.Controls.DatePickerDateValidationErrorEventArgs e);

        //引发 SelectedDateChanged 路由事件。
        protected virtual void OnSelectedDateChanged(System.Windows.Controls.SelectionChangedEventArgs e);

        //提供选定日期的文本表示形式。
        public override string ToString();

        //当关闭下拉 Calendar 时发生。
        public event System.Windows.RoutedEventHandler CalendarClosed;

        //当打开下拉 Calendar 时发生。
        public event System.Windows.RoutedEventHandler CalendarOpened;

        //当 Text 设置为无法解释为日期的值或者无法选择日期时发生。
        public event EventHandler<System.Windows.Controls.DatePickerDateValidationErrorEventArgs> DateValidationError;

        //当 SelectedDate 属性更改时发生。
        public event EventHandler<System.Windows.Controls.SelectionChangedEventArgs> SelectedDateChanged;
    }

2.7.4 DocumentViewer

表示一个文档查看控件,该控件可以承载分页的 FixedDocument 内容,例如 XpsDocument

自定义 DocumentViewer 控件

若要对多个 DocumentViewer 控件应用相同的属性设置,请使用 Style 属性。 您可以修改 ControlTemplate 默认值,为控件指定独特的外观。 有关创建 ControlTemplate 的详细信息,请参阅 通过创建 System.windows.controls.controltemplate> 自定义现有控件的外观。 若要查看特定于 DocumentViewer 的部分和状态,请参阅 DocumentViewer 样式和模板

此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题

    public class DocumentViewer : DocumentViewerBase
    {
        public static readonly System.Windows.DependencyProperty CanDecreaseZoomProperty;
        public static readonly System.Windows.DependencyProperty CanIncreaseZoomProperty;
        public static readonly System.Windows.DependencyProperty CanMoveDownProperty;
        public static readonly System.Windows.DependencyProperty CanMoveLeftProperty;
        public static readonly System.Windows.DependencyProperty CanMoveRightProperty;
        public static readonly System.Windows.DependencyProperty CanMoveUpProperty;
        public static readonly System.Windows.DependencyProperty ExtentHeightProperty;
        public static readonly System.Windows.DependencyProperty ExtentWidthProperty;
        public static readonly System.Windows.DependencyProperty HorizontalOffsetProperty;
        public static readonly System.Windows.DependencyProperty HorizontalPageSpacingProperty;
        public static readonly System.Windows.DependencyProperty MaxPagesAcrossProperty;
        public static readonly System.Windows.DependencyProperty ShowPageBordersProperty;
        public static readonly System.Windows.DependencyProperty VerticalOffsetProperty;
        public static readonly System.Windows.DependencyProperty VerticalPageSpacingProperty;
        public static readonly System.Windows.DependencyProperty ViewportHeightProperty;
        public static readonly System.Windows.DependencyProperty ViewportWidthProperty;
        public static readonly System.Windows.DependencyProperty ZoomProperty;

        //获取一个值,该值指示 DocumentViewer 是否可以进一步缩小。
        public bool CanDecreaseZoom { get; }

        //获取一个值,该值指示 DocumentViewer 是否可以进一步放大。
        public bool CanIncreaseZoom { get; }

        //获取一个值,该值指示 DocumentViewer 是否可以在文档中进一步向下移动。
        public bool CanMoveDown { get; }

        //获取一个值,该值指示 DocumentViewer 是否可以在文档中进一步向左移动。
        public bool CanMoveLeft { get; }

        //获取一个值,该值指示 DocumentViewer 是否可以在文档中进一步向右移动。
        public bool CanMoveRight { get; }

        //获取一个值,该值指示 DocumentViewer 是否可以在文档中进一步向上移动。
        public bool CanMoveUp { get; }

        //获取分页文档的整体垂直高度。
        public double ExtentHeight { get; }

        //获取分页文档的整体水平宽度。
        public double ExtentWidth { get; }

        //获取执行 FitToHeight() 操作的 RoutedUICommand。
        public static System.Windows.Input.RoutedUICommand FitToHeightCommand { get; }

        //获取执行 MaxPagesAcross 操作的 RoutedUICommand。
        public static System.Windows.Input.RoutedUICommand FitToMaxPagesAcrossCommand { get; }

        //获取执行 FitToWidth() 操作的 RoutedUICommand。
        public static System.Windows.Input.RoutedUICommand FitToWidthCommand { get; }

        //获取或设置水平滚动条位置。
        public double HorizontalOffset { get; set; }

        //获取或设置页面之间的水平间距。
        public double HorizontalPageSpacing { get; set; }

        //获取或设置一个值,该值定义要显示的最大页面列数。
        public int MaxPagesAcross { get; set; }

        //获取或设置一个值,该值指示是否显示阴影页边框。
        public bool ShowPageBorders { get; set; }

        //获取或设置垂直滚动条的位置。
        public double VerticalOffset { get; set; }

        //获取或设置显示页面之间的垂直间距。
        public double VerticalPageSpacing { get; set; }

        //获取可滚动的内容区域的垂直大小。
        public double ViewportHeight { get; }

        //获取可滚动的内容区域的水平大小。
        public double ViewportWidth { get; }

        //获取执行 ViewThumbnails() 操作的 RoutedUICommand。
        public static System.Windows.Input.RoutedUICommand ViewThumbnailsCommand { get; }

        //获取或设置文档缩放百分比。
        public double Zoom { get; set; }

        //将文档内容缩小一个缩放级别。
        public void DecreaseZoom();

        //将焦点移到查找工具栏上,以搜索文档内容。
        public void Find();

        //使一个页面适合当前视区的高度。
        public void FitToHeight();

        //使文档适合 MaxPagesAcross 属性设置。
        public void FitToMaxPagesAcross();
        public void FitToMaxPagesAcross(int pagesAcross);

        //使一个页面适合当前视区的宽度。
        public void FitToWidth();

        //返回当前显示的 DocumentPageView 元素的集合。
        protected override System.Collections.ObjectModel.ReadOnlyCollection<System.Windows.Controls.Primitives.DocumentPageView> GetPageViewsCollection(out bool changed);

        //将文档内容放大一个缩放级别。
        public void IncreaseZoom();

        //将文档内容向下滚动 16 个与设备无关的像素。
        public void MoveDown();

        //将文档内容向左滚动 16 个与设备无关的像素。
        public void MoveLeft();

        //将文档内容向右滚动 16 个设备独立像素。
        public void MoveRight();

        //将文档内容向上滚动 16 个与设备无关的像素。
        public void MoveUp();

        //响应对 ApplyTemplate() 方法的调用。
        public override void OnApplyTemplate();

        //响应来自 OnBringIntoView(DependencyObject, Rect, Int32) 实现的 DocumentViewerBase 方法。
        protected override void OnBringIntoView(System.Windows.DependencyObject element, System.Windows.Rect rect, int pageNumber);

        //创建并返回此 AutomationPeer 控件的 DocumentViewer。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //响应对 DecreaseZoom() 方法的调用。
        protected virtual void OnDecreaseZoomCommand();

        //当要显示的文档发生变化时对调用做出响应。
        protected override void OnDocumentChanged();

        //响应对 Find() 方法的调用。
        protected virtual void OnFindCommand();

        //响应对 FirstPage() 方法的调用。
        protected override void OnFirstPageCommand();

        //响应对 FitToHeight() 方法的调用。
        protected virtual void OnFitToHeightCommand();

        //响应对 FitToMaxPagesAcross 方法的调用。
        protected virtual void OnFitToMaxPagesAcrossCommand();
        protected virtual void OnFitToMaxPagesAcrossCommand(int pagesAcross);

        //响应对 FitToWidth() 方法的调用。
        protected virtual void OnFitToWidthCommand();

        //响应对 GoToPage(Int32) 方法的调用。
        protected virtual void OnFitToWidthCommand();

        //响应对 IncreaseZoom() 方法的调用。
        protected virtual void OnIncreaseZoomCommand();

        //响应 KeyDown 事件。
        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e);

        //响应对 LastPage() 方法的调用。
        protected override void OnLastPageCommand();

        //响应 MouseLeftButtonDown 事件
        protected override void OnLastPageCommand();

        //响应对 MoveDown() 方法的调用。
        protected virtual void OnMoveDownCommand();

        //响应对 MoveLeft() 方法的调用。
        protected virtual void OnMoveLeftCommand();

        //响应对 MoveRight() 方法的调用。
        protected virtual void OnMoveRightCommand();

        //响应对 MoveUp() 方法的调用。
        protected virtual void OnMoveUpCommand();

        //响应对 NextPage() 方法的调用。
        protected override void OnNextPageCommand();

        //响应 PreviewMouseWheel 事件。
        protected override void OnPreviewMouseWheel(System.Windows.Input.MouseWheelEventArgs e);

        //响应对 PreviousPage() 方法的调用。
        protected override void OnPreviousPageCommand();

        //响应对 ScrollPageDown() 方法的调用。
        protected virtual void OnScrollPageDownCommand();

        //响应对 ScrollPageLeft() 方法的调用。
        protected virtual void OnScrollPageLeftCommand();

        //响应对 ScrollPageRight() 方法的调用。
        protected virtual void OnScrollPageRightCommand();

        //响应对 ScrollPageUp() 方法的调用。
        protected virtual void OnScrollPageUpCommand();

        //响应对 ViewThumbnails() 方法的调用。
        protected virtual void OnViewThumbnailsCommand();

        //向下滚动一个视区。
        public void ScrollPageDown();

        //向左滚动一个视区。
        public void ScrollPageLeft();

        //向右滚动一个视区。
        public void ScrollPageRight();

        //向上滚动一个视区
        public void ScrollPageUp();

        //显示页面的缩略图表示形式。
        public void ViewThumbnails();
    }

2.7.5 FlowDocumentReader

提供一种查看流内容的控件,该控件内置了对多种查看模式的支持。

FlowDocumentReader具有使用户能够在各种查看模式之间动态选择的功能,包括单页(一次页面)查看模式,一次两页(书本阅读格式)查看模式,以及连续滚动(无底)观看模式。如果您不需要在不同的查看模式之间动态切换的功能,可以使用固定在特定查看模式下的轻量级流内容查看器。 FlowDocumentPageViewer以单页查看模式显示流内容,而FlowDocumentScrollViewer以连续滚动模式显示流内容。有关可用显示模式的更多信息,请参见FlowDocumentReaderViewingMode

下图显示了带有默认用户界面(UI)的FlowDocumentReader控件。

具有标注的屏幕快照:FlowDocumentReader

  • Content Area -Content Area显示 FlowDocument Document 属性指定的的内容。

  • Tool Bar 工具栏停靠在Content Area的下方。 它承载用于搜索内容、导航页面、选择查看模式和更改缩放级别的控件。

    • Find Button查找”按钮显示 "查找" 对话框,该对话框允许用户在 FlowDocumentReader 的内容中搜索指定的词或短语。 如果 IsFindEnabled 为false ,则不显示 " 查找 " 按钮。 有关详细信息,请参阅 Find

    • Page Navigation Controls -页面导航控件包含一个按钮,用于跳转到下一页 (向下箭头) 或上一页 ("向上" 箭头) ,以及当前页码和总页数的指示器。

    • Viewing Mode Buttons -使用查看模式按钮,用户可以从可用的查看模式中进行选择。 有关详细信息,请参阅 ViewingMode

    • Zoom Controls  -通过单击加号或减号按钮,用户可以使用缩放控件来增加或减少缩放级别。 缩放控件还包括一个用于调整缩放级别的滑块。 有关详细信息,请参阅 Zoom

默认工具栏 UI 不包含 " 打印 " 按钮。

FlowDocument 唯一允许的子元素是 FlowDocumentReader 。 FlowDocumentReader元素最多只能托管一个元素 FlowDocument 。

   public class FlowDocumentReader : Control, IAddChild, IJournalState
    {
        public static readonly System.Windows.DependencyProperty CanDecreaseZoomProperty;
        protected static readonly System.Windows.DependencyPropertyKey CanDecreaseZoomPropertyKey;
        public static readonly System.Windows.DependencyProperty CanIncreaseZoomProperty;
        protected static readonly System.Windows.DependencyPropertyKey CanIncreaseZoomPropertyKey;
        public static readonly System.Windows.DependencyProperty IsInactiveSelectionHighlightEnabledProperty;
        public static readonly System.Windows.DependencyProperty IsSelectionActiveProperty;
        public static readonly System.Windows.DependencyProperty MaxZoomProperty;
        public static readonly System.Windows.DependencyProperty MinZoomProperty;
        public static readonly System.Windows.DependencyProperty SelectionBrushProperty;
        public static readonly System.Windows.DependencyProperty SelectionOpacityProperty;
        public static readonly System.Windows.DependencyProperty ZoomIncrementProperty;
        public static readonly System.Windows.DependencyProperty ZoomProperty;

        //获取一个值,该值指示是否可以降低 Zoom 级别。
        public virtual bool CanDecreaseZoom { get; }

        //获取一个值,该值指示是否可以增加 Zoom 级别。
        public virtual bool CanIncreaseZoom { get; }

        //获取或设置指示 FlowDocumentPageViewer 是否在控件没有焦点时显示所选文本的值。
        public bool IsInactiveSelectionHighlightEnabled { get; set; }

        //获取指示 FlowDocumentPageViewer 是否具有焦点和选择文本的值。
        public bool IsSelectionActive { get; }

        //获取或设置 Zoom 允许的最大 FlowDocumentPageViewer 级别。
        public double MaxZoom { get; set; }

        //获取或设置 Zoom 允许的最小 FlowDocumentPageViewer 级别。
        public double MinZoom { get; set; }

        //获取 FlowDocumentPageViewer 的所选内容。
        public System.Windows.Documents.TextSelection Selection { get; }

        //获取或设置用于突出显示选定文本的画笔。
        public System.Windows.Media.Brush SelectionBrush { get; set; }

        //获取或设置 SelectionBrush 的不透明度。
        public double SelectionOpacity { get; set; }

        //获取或设置 FlowDocumentPageViewer 的当前缩放级别。
        public double Zoom { get; set; }

        //获取或设置缩放增量。
        public double ZoomIncrement { get; set; }

        //执行 DecreaseZoom 路由命令。
        public void DecreaseZoom();

        //切换“查找”对话框。
        public void Find();

        //执行 IncreaseZoom 路由命令。
        public void IncreaseZoom();

        //为 FlowDocumentPageViewer 构建可视化树。
        public override void OnApplyTemplate();

        //处理 CancelPrint 路由命令。
        protected override void OnCancelPrintCommand();

        //只要未处理的 ContextMenuOpening 路由事件在其路由中到达此类,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnContextMenuOpening(System.Windows.Controls.ContextMenuEventArgs e);

        //提供 AutomationPeer 此控件的适当实现,作为 WPF 自动化基础结构的一部分。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //处理 DecreaseZoom 路由命令。
        protected virtual void OnDecreaseZoomCommand();

        //当 Document 属性更改时调用。
        protected override void OnDocumentChanged();

        //处理 Find 路由命令。
        protected virtual void OnFindCommand();

        //处理 FirstPage 路由命令。
        protected override void OnFirstPageCommand();

        //处理 GoToPage 路由命令。
        protected override void OnGoToPageCommand(int pageNumber);

        //处理 IncreaseZoom 路由命令。
        protected virtual void OnIncreaseZoomCommand();

        //处理 KeyDown 路由事件。
        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e);

        //处理 LastPage 路由命令。
        protected override void OnLastPageCommand();

        //处理 MouseWheel 路由事件。
        protected override void OnMouseWheel(System.Windows.Input.MouseWheelEventArgs e);

        //处理 NextPage 路由命令。
        protected override void OnNextPageCommand();

        //处理 PageViewsChanged 路由事件。
        protected override void OnPageViewsChanged();

        //处理 PreviousPage 路由命令。
        protected override void OnPreviousPageCommand();

        //处理 Print 路由命令。
        protected override void OnPrintCommand();

        //完成一个打印作业后调用。
        protected virtual void OnPrintCompleted();

    }

2.7.6 FlowDocumentScrollViewer

提供一种控件,该控件以连续滚动模式查看流内容。

 

FlowDocumentScrollViewer以连续滚动模式显示内容。类似的控件FlowDocumentPageViewer可以一次查看页面的方式显示内容。既FlowDocumentPageViewerFlowDocumentScrollViewer被固定到特定的观看模式。另一方面,FlowDocumentReader包含一些功能,使用户可以在各种查看模式之间动态选择(由FlowDocumentReaderViewingMode枚举提供),但代价是要比FlowDocumentPageViewerFlowDocumentScrollViewer重。

下图显示了带有默认用户界面(UI)的FlowDocumentScrollViewer控件。

屏幕快照:基本 FlowDocumentScrollViewer

默认情况下,总是显示垂直滚动条,而水平滚动条则在需要时显示。FlowDocumentScrollViewer  的默认 UI 不包含工具栏; 但是, IsToolBarVisible 属性可用于启用内置工具栏。

FlowDocument的是一个只许子元素FlowDocumentScrollViewer。一个FlowDocumentScrollViewer元素最多可容纳一个FlowDocument

    public class FlowDocumentScrollViewer : Control, IAddChild, IServiceProvider, IJournalState
    {
        public static readonly System.Windows.DependencyProperty CanDecreaseZoomProperty;
        public static readonly System.Windows.DependencyProperty CanIncreaseZoomProperty;
        public static readonly System.Windows.DependencyProperty DocumentProperty;
        public static readonly System.Windows.DependencyProperty DocumentProperty;
        public static readonly System.Windows.DependencyProperty IsInactiveSelectionHighlightEnabledProperty;
        public static readonly System.Windows.DependencyProperty IsSelectionActiveProperty;
        public static readonly System.Windows.DependencyProperty IsSelectionEnabledProperty;
        public static readonly System.Windows.DependencyProperty IsToolBarVisibleProperty;
        public static readonly System.Windows.DependencyProperty MaxZoomProperty;
        public static readonly System.Windows.DependencyProperty MinZoomProperty;
        public static readonly System.Windows.DependencyProperty SelectionBrushProperty;
        public static readonly System.Windows.DependencyProperty SelectionOpacityProperty;
        public static readonly System.Windows.DependencyProperty VerticalScrollBarVisibilityProperty;
        public static readonly System.Windows.DependencyProperty ZoomIncrementProperty;
        public static readonly System.Windows.DependencyProperty ZoomProperty;

        //获取一个值,该值指示是否可以降低 Zoom 级别。
        public bool CanDecreaseZoom { get; }

        //获取一个值,该值指示是否可以增加 Zoom 级别。
        public bool CanIncreaseZoom { get; }

        //获取或设置一个 FlowDocument,它可托管 FlowDocumentScrollViewer 显示的内容。
        public System.Windows.Documents.FlowDocument Document { get; set; }

        //获取或设置一个值,该值指示是否显示水平滚动条。
        public System.Windows.Controls.ScrollBarVisibility HorizontalScrollBarVisibility { get; set; }

        //获取或设置指示 FlowDocumentScrollViewer 是否在控件没有焦点时显示所选文本的值。
        public bool IsInactiveSelectionHighlightEnabled { get; set; }

        //获取指示 FlowDocumentScrollViewer 是否具有焦点和选择文本的值
        public bool IsSelectionActive { get; }

        //获取或设置一个值,该值指示是否启用 FlowDocumentScrollViewer 中的内容选择。
        public bool IsSelectionEnabled { get; set; }

        //获取或设置一个值,该值指示 FlowDocumentScrollViewer 工具栏是否可见。
        public bool IsToolBarVisible { get; set; }

        //获取一个可循环访问 FlowDocumentScrollViewer 的逻辑子级的枚举器。
        protected internal override System.Collections.IEnumerator LogicalChildren { get; }

        //获取或设置 Zoom 允许的最大 FlowDocumentScrollViewer 级别。
        public double MaxZoom { get; set; }

        //获取或设置 Zoom 允许的最小 FlowDocumentScrollViewer 级别。
        public double MinZoom { get; set; }

        //获取 FlowDocumentScrollViewer 的所选内容。
        public System.Windows.Documents.TextSelection Selection { get; }

        //获取或设置用于突出显示选定文本的画笔。
        public System.Windows.Media.Brush SelectionBrush { get; set; }

        //获取或设置 SelectionBrush 的不透明度。
        public double SelectionOpacity { get; set; }

        //获取或设置一个值,该值指示是否显示垂直滚动条。
        public System.Windows.Controls.ScrollBarVisibility VerticalScrollBarVisibility { get; set; }

        //获取或设置当前缩放级别。
        public double Zoom { get; set; }

        //获取或设置缩放增量。
        public double ZoomIncrement { get; set; }

        //取消任何当前打印作业。
        public void CancelPrint();

        //执行 DecreaseZoom 路由命令。
        public void DecreaseZoom();

        //切换“查找”对话框。
        public void Find();

        //执行 IncreaseZoom 路由命令。
        public void IncreaseZoom();

        //为 FlowDocumentScrollViewer 构建可视化树。
        public override void OnApplyTemplate();

        //处理 CancelPrint 路由命令。
        protected virtual void OnCancelPrintCommand();

        //每当未处理的 ContextMenuOpening 路由事件在其路由中到达此类时调用。 实现此方法可为此事件添加类处理。
        protected override void OnContextMenuOpening(System.Windows.Controls.ContextMenuEventArgs e);

        //创建并返回此 AutomationPeer 的 FlowDocumentScrollViewer 对象。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //处理 DecreaseZoom 路由命令。
        protected virtual void OnDecreaseZoomCommand();

        //处理 Find 路由命令
        protected virtual void OnFindCommand();

        //处理 IncreaseZoom 路由命令。
        protected virtual void OnIncreaseZoomCommand();

        //处理 KeyDown 路由事件。
        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e);

        //处理 MouseWheel 路由事件。
        protected override void OnMouseWheel(System.Windows.Input.MouseWheelEventArgs e);

        //处理 Print 路由命令
        protected virtual void OnPrintCommand();

        //完成一个打印作业后调用。
        protected virtual void OnPrintCompleted();

        //调用标准的“打印”对话框,此对话框可用于打印 FlowDocumentScrollViewer 的内容和配置打印首选项。
        public void Print();

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用。
        object IServiceProvider.GetService(Type serviceType);

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用。 使用 Document 属性以添加 FlowDocument 作为 FlowDocumentScrollViewer 的内容子级。
        void IAddChild.AddChild(object value);

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用。
        void IAddChild.AddText(string text);
    }

2.7.7 GridSplitter

表示重新分布 Grid 控件的列间距或行间距的控件。

GridSplitter控件在中的行或列之间重新分配空间 Grid ,而不会更改的尺寸 Grid 。 例如,当 GridSplitter 调整两个列的大小时, ActualWidth 一列的属性会增加,而另一列的 ActualWidth 属性将按相同的量减小。

下表显示了如何 GridSplitter 通过设置 HorizontalAlignment 和 VerticalAlignment 属性并 ResizeDirection ResizeBehavior 将和属性设置为其默认值,来定义水平或垂直。

如何创建垂直和水平 GridSplitter 控件

注解
GridSplitter 类型HorizontalAlignment 值VerticalAlignment 值
调整行的大小StretchTopBottomCenter
调整列的大小LeftRightCenterStretch
如果 ActualHeight 大于或等于 ActualWidth ,则将调整列的大小。

如果 ActualHeight 小于,则会 ActualWidth 调整行的大小。
StretchStretch

 

GridSplitter可以与包含其他内容的行或列重叠,也可以单独占用行或列。 有关如何定义GridSplitter的详细信息  ,请参阅 如何:使用 GridSplitter 调整行的大小 和 如何:使用 GridSplitter 调整列的大小

如果 HorizontalAlignment 和 VerticalAlignment 属性设置未实现所需的 GridSplitter 行为,您可以更改 ResizeDirection 和 ResizeBehavior 属性设置。

GridSplitter可能会被包含在 Children 的集合中的其他对象遮住Grid 。 有关如何防止这种情况的信息,请参阅 如何:确保 GridSplitter 可见

此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题

 

    public class GridSplitter : Thumb
    {
        public static readonly System.Windows.DependencyProperty DragIncrementProperty;
        public static readonly System.Windows.DependencyProperty KeyboardIncrementProperty;
        public static readonly System.Windows.DependencyProperty PreviewStyleProperty;
        public static readonly System.Windows.DependencyProperty ResizeBehaviorProperty;
        public static readonly System.Windows.DependencyProperty ResizeDirectionProperty;
        public static readonly System.Windows.DependencyProperty ShowsPreviewProperty;

        //获取或设置用户使用 GridSplitter 控件调整行或列的大小时必须将鼠标拖动的最小距离。
        public double DragIncrement { get; set; }

        //获取或设置每按下一次箭头键时移动 GridSplitter 控件的距离。
        public double KeyboardIncrement { get; set; }

        //获取或设置一个样式,该样式自定义当 GridSplitter 属性设置为 true 时将显示的 ShowsPreview 控件预览指示器的外观、效果或其他样式特征。
        public System.Windows.Style PreviewStyle { get; set; }

        //获取或设置哪些列或行要相对于 GridSplitter 控件针对其进行定义的列或行调整其大小
        public System.Windows.Controls.GridResizeBehavior ResizeBehavior { get; set; }

        //获取或设置一个值,该值指示 GridSplitter 控件是否重设行或列的大小。
        public System.Windows.Controls.GridResizeDirection ResizeDirection { get; set; }

        //获取或设置一个值,该值指示当用户拖动 GridSplitter 控件时该控件是否更新列或行的大小。
        public bool ShowsPreview { get; set; }

        //创建 AutomationPeer 控件的 GridSplitter 实现。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //当按下键时调用。
        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e);

        //当 GridSplitter 控件失去键盘焦点时调用。
        protected override void OnLostKeyboardFocus(System.Windows.Input.KeyboardFocusChangedEventArgs e);

        //对在 GridSplitter 控件的尺寸方面进行的更改做出响应。
        protected internal override void OnRenderSizeChanged(System.Windows.SizeChangedInfo sizeInfo);
    }

2.7.8 KeyTipControl

表示在 KeyTip 内部使用的控件。

    class KeyTipControl : System.Windows.Controls.Control
    {
        public static readonly System.Windows.DependencyProperty TextProperty;

        //获取或设置与此控件关联的文本。
        public string Text { get; set; }
    }

2.7.9 ProgressBar

指示操作进度

ProgressBar控件包含一个窗口,默认情况下,该窗口在操作过程中以从左到右的方式填充。 控件具有一个范围和一个当前位置。

ProgressBar 重写Maximum 属性的元数据 ,并将其默认设置为100。 ProgressBar 重写Focusable 属性的元数据 ,并将其默认设置为 false 。 有关详细信息,请参阅依赖项属性概述

自定义 ProgressBar 控件

若要对多个 ProgressBar 控件应用相同的属性设置,请使用 Style 属性。 您可以修改ControlTemplate 默认值 ,为控件指定独特的外观。 有关创建 ControlTemplate 的详细信息,请参阅 通过创建 System.windows.controls.controltemplate> 自定义现有控件的外观。 若要查看特定于 ProgressBar 的部分和状态,请参阅 ProgressBar 样式和模板

此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题

只有视觉对象属性已存在于控件的默认模板中并且已使用 TemplateBinding 设置时,设置该属性才有效。 在通过创建 ControlTemplate 自定义现有控件的外观一文的更改控件的视觉结构部分可以找到视觉属性列表。

    public class ProgressBar : RangeBase
    {
        public static readonly System.Windows.DependencyProperty IsIndeterminateProperty;
        public static readonly System.Windows.DependencyProperty OrientationProperty;

        //获取或设置 ProgressBar 是显示实际值,还是显示一般的连续进度反馈。
        public bool IsIndeterminate { get; set; }

        //获取或设置 ProgressBar 的方向:水平或垂直。
        public System.Windows.Controls.Orientation Orientation { get; set; }

        //在将模板应用于 ProgressBar 时调用。
        public override void OnApplyTemplate();

        //提供 ProgressBarAutomationPeer 此控件的适当实现,作为 WPF 自动化基础结构的一部分。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //当 Maximum 属性更改时,更新 ProgressBar 的当前位置。
        protected override void OnMaximumChanged(double oldMaximum, double newMaximum);

        //当 Minimum 属性更改时,更新 ProgressBar 的当前位置。
        protected override void OnMinimumChanged(double oldMinimum, double newMinimum);

        //当 Value 属性更改时,更新 ProgressBar 的当前位置。
        protected override void OnValueChanged(double oldValue, double newValue);
  
    }

2.7.10 RichTextBox

表示对 FlowDocument 对象进行操作的丰富编辑控件。

FlowDocument 是RichTextBox 唯一支持的子元素 。

RichTextBox 为冒泡 MouseUp和 MouseDown 事件提供内置处理。 因此永远不会调用在中侦听 RichTextBox 的 MouseUp 或,MouseDown 事件的自定义事件处理程序。 如果需要响应这些事件,请改为侦听PreviewMouseUp 和 PreviewMouseDown 隧道事件,或向HandledEventsToo 参数注册处理程序 (此后一选项仅可通过代码) 。 除非您有意要禁用RichTextBox对这些事件的本机处理,否则不要将事件标记为已处理,并且要注意,这会对控件的UI产生显着影响。

RichTextBox支持复制和粘贴图像时,当前不支持某些方案,可能无法正常工作。 下表总结了这些方案和预期结果。

注解
图像复制源图像粘贴结果
图像源是图形图元文件未粘贴任何图像
图像源使用相对路径或链接粘贴了乱帖或空白图像
图像源链接不会以预期的图像格式 ( 结束。PNG、。JPG、。GIF)粘贴了乱帖或空白图像
从格式错误的格式文本复制的图像源 (RTF)链接到图像源的 (而不是图像)

将 HTML 内容粘贴到 RichTextBox 可能会导致意外行为,因为 RichTextBox 使用 RTF 格式,而不是直接使用 HTML 格式。

文本总是包装在RichTextBox中  。 如果你不希望文本换行,请将 FlowDocument 上 将PageWidth设置为大于RichTextBox 的宽度 。 但是,一旦达到页面宽度,文本仍会换行。

RichTextBox使用 HorizontalContentAlignment 和VerticalContentAlignment 属性在中水平和垂直对齐内容。 RichTextBox通过 HorizontalAlignment 和VerticalAlignment 属性在页面布局中对齐。

默认情况下,滚动条在 RichTextBox 上不可见。 若要使滚动条可见,请将 VerticalScrollBarVisibility 属性设置为 Visible 或 Auto 。

通常情况下,应该使用 TextChanged 事件来检测 TextBox 或RichTextBox更改中的文本 ,而不是在预期时进行检测 KeyDown 。 有关示例,请参阅 如何:在文本框中的文本发生更改时进行检测

RichTextBox 支持多种键盘命令。 有关键盘命令的列表,请参阅 EditingCommands 。

此控件的依赖项属性可以由控件的默认样式设置。如果使用默认样式设置属性,则当控件出现在应用程序中时,该属性可能会从其默认值更改。默认样式由运行应用程序时使用的桌面主题确定。有关更多信息,请参见默认WPF主题

    public class RichTextBox : TextBoxBase, IAddChild
    {
        public static readonly System.Windows.DependencyProperty IsDocumentEnabledProperty;


        //获取或设置输入插入符号的位置。
        public System.Windows.Documents.TextPointer CaretPosition { get; set; }

        //获取或设置表示 FlowDocument 的内容的 RichTextBox。
        public System.Windows.Documents.FlowDocument Document { get; set; }

        //获取或设置一个值,该值指示用户是否可以与 UIElement 内的 ContentElement 和 RichTextBox 对象进行交互。
        public bool IsDocumentEnabled { get; set; }

        //获取一个可循环访问 RichTextBox 的逻辑子级的枚举器。
        protected internal override System.Collections.IEnumerator LogicalChildren { get; }

        //获取一个包含 RichTextBox 中当前选定内容的 TextSelection 对象。
        public System.Windows.Documents.TextSelection Selection { get; }

        //返回指向 TextPointer 的内容中下一个拼写错误的 RichTextBox。
        public System.Windows.Documents.TextPointer GetNextSpellingErrorPosition(System.Windows.Documents.TextPointer position, System.Windows.Documents.LogicalDirection direction);

        //返回 TextPointer,它指向与指定职位最近的插入点。
        public System.Windows.Documents.TextPointer GetPositionFromPoint(System.Windows.Point point, bool snapToText);

        //返回与RichTextBox 的内容中指定的位置处的任何拼写错误相关联的 SpellingError 对象。
        public System.Windows.Controls.SpellingError GetSpellingError(System.Windows.Documents.TextPointer position);

        //返回一个 TextRange 对象,其中包括 RichTextBox 的内容中指定位置处的任何拼错的单词
        public System.Windows.Documents.TextRange GetSpellingErrorRange(System.Windows.Documents.TextPointer position);

        //调用以重新测量 RichTextBox。
        protected override System.Windows.Size MeasureOverride(System.Windows.Size constraint);

        //创建并返回此 AutomationPeer 的 RichTextBox 对象。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //呈现此多信息文本框时所使用的 DPI 发生变化时进行调用。
        protected override void OnDpiChanged(System.Windows.DpiScale oldDpiScaleInfo, System.Windows.DpiScale newDpiScaleInfo);

        //返回一个值,该值指示在序列化 Document 对象期间,是否应对 RichTextBox 属性的有效值进行序列化。
        public bool ShouldSerializeDocument();

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用。
        void IAddChild.AddChild(object value);

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用。
        void IAddChild.AddText(string text);
    }

2.7.11 Separator

用于分隔项控件中各个项的控件。

Separator控件在控件中的项之间(如 ListBox 和Menu 、ToolBar )绘制线条(水平或垂直)。 Separator 控件不会对任何键盘、鼠标、鼠标滚轮或 tablet 输入做出反应,因此无法启用或选择。 Separator 元素内 Menu 的控件与 Separator 外的控件出现的方式不同 Menu 。 当你使用创建时 Menu Separator ,控件将自动应用 Style 由属性标识的 MenuItem.SeparatorStyleKey 。 样式放置在资源字典中,并按其键进行搜索。 若要更改 Style 内的的 Separator Menu ,必须使用 MenuItem.SeparatorStyleKey 属性来创建新的 Style 。 有关示例,请参见 MenuItem.SeparatorStyleKey 属性。

此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题

    public class Separator : Control
    {
        //提供 SeparatorAutomationPeer 此控件的适当实现,作为 WPF 自动化基础结构的一部分。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();
    }

2.7.12 Slider

表示一个控件,该控件可让用户通过沿 Thumb 移动 Track 控件从一个值范围中进行选择。

Slider控件允许用户从一系列值中选择值。 下图显示了控件的一个示例 Slider 。

滑块控件的示例

Slider 图

可以 Slider 通过设置控件的属性来自定义控件。 下面的列表描述了可自定义的的一些属性 Slider :

  •  Slider 的方向(水平或垂直)。

  •  Slider 轨迹上的刻度线位置。

  •  Slider 显示的工具提示显示的当前值。

  •  Slider  Thumb对齐刻度线的功能,或沿的任何点。

  •  Slider沿增加值的方向 。

有关如何自定义控件的详细信息 Slider ,请参阅单个成员。

Slider 重写属性的元数据 Maximum ,并将其默认值设置为10。 有关详细信息,请参阅依赖项属性概述

 备注

如果的值 Slider 已进行动画处理,则在动画完成后,用户可能无法再与 Slider 控件交互。 请参阅 如何:使用情节提要对属性进行动画处理后设置该属性 ,以获取有关如何在动画上还原的用户控件的选项 Slider 。

若要对多个控件应用相同的属性设置 Slider ,请使用 Style 属性。 您可以修改默认值 ControlTemplate ,为控件指定独特的外观。 有关创建的详细信息 ControlTemplate ,请参阅 通过创建 System.windows.controls.controltemplate> 自定义现有控件的外观。 若要查看特定于的部分和状态 Slider ,请参阅 滑块样式和模板

此控件的依赖属性可能由控件的默认样式设置。 如果按默认样式设置属性,则当控件出现在应用程序中时,属性可能会更改为默认值。 默认样式取决于应用程序运行时使用的桌面主题。 有关详细信息,请参阅 默认的 WPF 主题

 备注

只有视觉对象属性已存在于控件的默认模板中并且已使用 TemplateBinding 设置时,设置该属性才有效。 在通过创建 ControlTemplate 自定义现有控件的外观一文的更改控件的视觉结构部分可以找到视觉属性列表。

自定义滑块控件

要将相同的属性设置应用于多个Slider控件,请使用Style属性。您可以修改默认的ControlTemplate以使控件具有唯一的外观。有关创建ControlTemplate的更多信息,请参见通过创建ControlTemplate自定义现有控件的外观。要查看特定于Slider的零件和状态,请参见Slider样式和模板

此控件的依赖项属性可以由控件的默认样式设置。如果使用默认样式设置属性,则当控件出现在应用程序中时,该属性可能会从其默认值更改。默认样式由运行应用程序时使用的桌面主题确定。有关更多信息,请参见默认WPF主题

设置视觉属性仅在该属性同时存在于控件的默认模板中并且通过使用TemplateBinding进行设置时才有效。您可以在通过创建ControlTemplate定制现有控件的外观的更改控件的视觉结构”部分中找到视觉属性列表。

    public class Slider : RangeBase
    {
        public static readonly System.Windows.DependencyProperty AutoToolTipPlacementProperty;
        public static readonly System.Windows.DependencyProperty AutoToolTipPrecisionProperty;
        public static readonly System.Windows.DependencyProperty DelayProperty;
        public static readonly System.Windows.DependencyProperty IntervalProperty;
        public static readonly System.Windows.DependencyProperty IsDirectionReversedProperty;
        public static readonly System.Windows.DependencyProperty IsMoveToPointEnabledProperty;
        public static readonly System.Windows.DependencyProperty IsSelectionRangeEnabledProperty;
        public static readonly System.Windows.DependencyProperty IsSnapToTickEnabledProperty;
        public static readonly System.Windows.DependencyProperty OrientationProperty;
        public static readonly System.Windows.DependencyProperty SelectionEndProperty;
        public static readonly System.Windows.DependencyProperty SelectionStartProperty;
        public static readonly System.Windows.DependencyProperty TickFrequencyProperty;
        public static readonly System.Windows.DependencyProperty TickPlacementProperty;
        public static readonly System.Windows.DependencyProperty TicksProperty;

        //获取或设置在按下 Thumb 时是否显示包含 Slider 的当前值的工具提示。 如果显示工具提示,此属性还指定工具提示的位置。
        public System.Windows.Controls.Primitives.AutoToolTipPlacement AutoToolTipPlacement { get; set; }

        //获取或设置在工具提示中的 Slider 的 Value 的小数点右侧显示的小数位数。
        public int AutoToolTipPrecision { get; set; }

        //获取一个命令,该命令将 Slider 的值减少与 LargeChange 属性相同的量。
        public static System.Windows.Input.RoutedCommand DecreaseLarge { get; }

        //获取一个命令,该命令将 Slider 的值减少与 SmallChange 属性相同的量。
        public static System.Windows.Input.RoutedCommand DecreaseSmall { get; }

        //获取或设置在按下 RepeatButton 之后等待执行用于移动 Thumb 的命令(如 DecreaseLarge 命令)的时间(以毫秒为单位)。
        public int Delay { get; set; }

        //获取一个命令,该命令将滑块的值增加与 LargeChange 属性相同的量。
        public static System.Windows.Input.RoutedCommand IncreaseLarge { get; }

        //获取一个命令,该命令将滑块的值增加与 SmallChange 属性相同的量。
        public static System.Windows.Input.RoutedCommand IncreaseSmall { get; }

        //获取或设置当用户单击 RepeatButton 的 Slider 时增加或减少命令之间的时间量(以毫秒为单位)。
        public int Interval { get; set; }

        //获取或设置增加值的方向。
        public bool IsDirectionReversed { get; set; }

        //获取或设置一个值,该值指示是否立即将 Slider 的 Thumb 移动到在鼠标指针悬停在 Slider 轨道的上方时鼠标单击的位置。
        public bool IsMoveToPointEnabled { get; set; }

        //获取或设置一个值,该值指示 Slider 是否沿 Slider 显示选择范围。
        public bool IsSelectionRangeEnabled { get; set; }

        //获取或设置一个值,该值指示 Slider 是否自动将 Thumb 移动到最近的刻度线。
        public bool IsSnapToTickEnabled { get; set; }

        //获取一个命令,该命令将 SliderValue 设置为 Maximum 值。
        public static System.Windows.Input.RoutedCommand MaximizeValue { get; }

        //获取一个命令,该命令将 SliderValue 设置为 Minimum 值。
        public static System.Windows.Input.RoutedCommand MinimizeValue { get; }

        //获取或设置 Slider 的方向。
        public System.Windows.Controls.Orientation Orientation { get; set; }

        //获取或设置 Slider 的指定选择内容的最大值。
        public double SelectionEnd { get; set; }

        //获取或设置 Slider 的指定选择内容的最大值。
        public double SelectionStart { get; set; }

        //获取或设置刻度线之间的间隔。
        public double TickFrequency { get; set; }

        //获取或设置与 Track 的 Slider 相关的刻度线的位置。
        public System.Windows.Controls.Primitives.TickPlacement TickPlacement { get; set; }

        //获取或设置为 Slider 显示的刻度线的位置。
        public System.Windows.Media.DoubleCollection Ticks { get; set; }

        //排列 Slider 的内容并确定其 Size。
        protected override System.Windows.Size ArrangeOverride(System.Windows.Size finalSize);

        //生成 Slider 控件的可视化树。
        public override void OnApplyTemplate();

        //为 Slider 创建一个 AutomationPeer。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //响应 DecreaseLarge 命令。
        protected virtual void OnDecreaseLarge();

        //响应 DecreaseSmall 命令。
        protected virtual void OnDecreaseSmall();

        //响应 IncreaseLarge 命令。
        protected virtual void OnIncreaseLarge();

        //响应 IncreaseSmall 命令。
        protected virtual void OnIncreaseSmall();

        //响应 MaximizeValue 命令。
        protected virtual void OnMaximizeValue();

        //响应 Maximum 属性值的更改。
        protected override void OnMaximumChanged(double oldMaximum, double newMaximum);

        //响应 MinimizeValue 命令。
        protected virtual void OnMinimizeValue();

        //响应 Minimum 属性值的更改。
        protected override void OnMinimumChanged(double oldMinimum, double newMinimum);

        //提供用于 PreviewMouseLeftButtonDown 路由事件的类处理。
        protected override void OnPreviewMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs e);

        //供用于当用户停止拖动 DragCompleted 的 Thumb 时发生的 Slider 事件的类处理。
        protected virtual void OnThumbDragCompleted(System.Windows.Controls.Primitives.DragCompletedEventArgs e);

        //提供用于当用户拖动 DragDelta 的 Thumb 时发生的 Slider 事件的类处理。
        protected virtual void OnThumbDragDelta(System.Windows.Controls.Primitives.DragDeltaEventArgs e);

        //提供用于当用户开始拖动 Slider 的 Thumb 时发生的 DragStarted 事件的类处理。
        protected virtual void OnThumbDragStarted(System.Windows.Controls.Primitives.DragStartedEventArgs e);

        //当 Value 属性更改时,更新 Slider 的当前位置。
        protected override void OnValueChanged(double oldValue, double newValue);
    }

2.7.13 StickyNoteControl

表示一个控件,该控件允许用户在文档中附加键入的文本或手写的批注。

粘滞便笺提供其内容与注释锚定的文本、图像或其他材料分离的矩形区域。

StickyNoteControl类及其成员是公共的,因此可以对其进行样式化,但没有公共构造函数。 实例是用类的 CreateTextStickyNoteCommand 和创建的 CreateInkStickyNoteCommand AnnotationService 。

创建粘滞便笺时,会将其指定为以下两种类型之一:

  • 文本 粘滞便笺的 RichTextBox 内容区域可以像任何其他丰富文本区域一样进行书写和编辑。 用户可以键入它,还可以在注释内以及便笺与其他应用程序之间剪切、复制和粘贴。 还可以将图像粘贴到便笺中。 常用的富文本键盘快捷方式也可用。
  •  粘滞便笺具有 InkCanvas 内容区域,可以像其他墨迹 canvasses 一样进行编辑。 例如,可以清除笔划。 在 tablet PC 或其他合适的硬件上,用户可以输入手写笔记。

用户界面 (的 UI) StickyNoteControl 使其成为注释材料的更强大方法,而不是标记硬拷贝或使用物理手写笔记。 它还比简单地添加或通过文档文本更灵活。

  • 可以调整粘滞便笺的大小。
  • 粘滞便笺可以最小化为图标并展开。
  • 最大化时,可以将粘滞便笺拖动到窗口中的新位置,而无需更改其定位点的位置。
  • 粘滞便笺适用的确切内容将突出显示,并使用括号将其标记为 off。
  • 两个或多个粘滞便笺可应用于相同内容或重叠内容。
  • 当粘滞便笺锚定的文档内容中发生更改时,粘滞便笺的位置相对于它所绑定到的内容移动到位置。
  • 文本粘滞便笺会自动换行。 如果调整了便笺的大小,则会根据需要重新包装线条。 如果内容超出了便笺的底部,将显示一个垂直滚动条。
  • 当内容超出注释边界时,将显示垂直滚动条和水平滚动条。
    public sealed class StickyNoteControl : Control, IAnnotationComponent
    {
        public static readonly System.Windows.DependencyProperty AuthorProperty;
        public static readonly System.Windows.DependencyProperty CaptionFontFamilyProperty;
        public static readonly System.Windows.DependencyProperty CaptionFontSizeProperty;
        public static readonly System.Windows.DependencyProperty CaptionFontStretchProperty;
        public static readonly System.Windows.DependencyProperty CaptionFontStyleProperty;
        public static readonly System.Windows.DependencyProperty CaptionFontWeightProperty;
        public static readonly System.Windows.Input.RoutedCommand DeleteNoteCommand;
        public static readonly System.Windows.Input.RoutedCommand DeleteNoteCommand;
        public static readonly System.Windows.Input.RoutedCommand InkCommand;
        public static readonly System.Xml.XmlQualifiedName InkSchemaName;
        public static readonly System.Windows.DependencyProperty IsActiveProperty;
        public static readonly System.Windows.DependencyProperty IsExpandedProperty;
        public static readonly System.Windows.DependencyProperty IsMouseOverAnchorProperty;
        public static readonly System.Windows.DependencyProperty PenWidthProperty;
        public static readonly System.Windows.DependencyProperty StickyNoteTypeProperty;
        public static readonly System.Xml.XmlQualifiedName TextSchemaName;

        //获取一个提供有关批注对象的信息的对象。
        public System.Windows.Annotations.IAnchorInfo AnchorInfo { get; }

        //获取手写便笺创建者的姓名。
        public string Author { get; }

        //获取或设置 StickyNoteControl 标题的字体系列。
        public System.Windows.Media.FontFamily CaptionFontFamily { get; set; }

        //获取或设置 StickyNoteControl 标题使用的字体的字号。
        public double CaptionFontSize { get; set; }

        //获取或设置 StickyNoteControl 标题使用的字体的拉伸程度。
        public System.Windows.FontStretch CaptionFontStretch { get; set; }

        //获取或设置 StickyNoteControl 标题使用的字体的样式。
        public System.Windows.FontStyle CaptionFontStyle { get; set; }

        //获取或设置 StickyNoteControl 标题使用的字体的粗细。
        public System.Windows.FontWeight CaptionFontWeight { get; set; }

        //获取一个值,该值指示 StickyNoteControl 是否处于活动状态。
        public bool IsActive { get; }

        //获取或设置一个值,该值指示 StickyNoteControl 是否已展开。
        public bool IsExpanded { get; set; }

        //获取一个值,该值指示鼠标光标是否位于 StickyNoteControl 的定位标记上。
        public bool IsMouseOverAnchor { get; }

        //获取或设置墨迹 StickyNoteControl 的笔宽。
        public double PenWidth { get; set; }

        //获取一个值,该值指示手写便笺是文本还是墨迹。
        public System.Windows.Controls.StickyNoteType StickyNoteType { get; }

        //注册模板的所有子项的事件处理程序。
        public override void OnApplyTemplate();
    }

2.7.14 TextBox

表示一个控件,该控件可用于显示或编辑无格式文本。

TextBox控件在其属性中只能包含无格式文本 Text 。 下图显示了一个示例 TextBox 。

TextBox 屏幕快照
TextBox 示例

TextBox 是由多个封装的组件组成的复合控件。 因此,某些事件不会向上冒泡到包含控件,因为它们由封装的子元素处理。 因此,应用程序开发人员应侦听由前缀 "Preview"  表示 事件的隧道版本。

TextBox 仅支持未格式化文本。 有关需要支持更丰富内容的应用程序,请参阅 RichTextBox 。 对于需要接受密码或其他敏感输入的应用程序,请参阅 PasswordBox 。

TextBox使用 HorizontalContentAlignment 和VerticalContentAlignment 属性在中水平和垂直对齐文本。 TextBox通过HorizontalAlignment 和VerticalAlignment属性在页面布局中对齐  。

TextBox 隐藏周围边框的最佳方式 是将TextBox  的BorderThickness 属性设置 为 0 。

 重要

TextBox 为MouseUp 和MouseDown 冒泡事件提供内置处理 。因此,将不会调用侦听TextBox中MouseUpMouseDown事件的自定义事件处理程序。。如果您需要响应这些事件,请改为监听隧道的PreviewMouseUpPreviewMouseDown事件,或向HandledEventsToo参数注册处理程序(后一种选项仅可通过代码使用)。除非您有意要禁用这些事件的TextBox本机处理,否则不要将事件标记为已处理,并且请注意,这会对控件的UI产生显着影响。

默认情况下,滚动条在TextBox上不可见。若要使滚动条可见,请将VerticalScrollBarVisibilityHorizo​​ntalScrollBarVisibility属性设置为VisibleAuto

通常,应使用TextChanged事件检测TextBoxRichTextBox中的文本何时更改,而不是您期望的KeyDown更改。有关示例,请参见如何:检测文本框中的文本是否已更改

自定义 TextBox 控件

要将相同的属性设置应用于多个TextBox控件,请使用Style属性。您可以修改默认的ControlTemplate以使控件具有唯一的外观。有关创建ControlTemplate的更多信息,请参见通过创建ControlTemplate自定义现有控件的外观。若要查看特定于TextBox的部分和状态,请参见TextBox样式和模板

此控件的依赖项属性可以由控件的默认样式设置。如果使用默认样式设置属性,则当控件出现在应用程序中时,该属性可能会从其默认值更改。默认样式由运行应用程序时使用的桌面主题确定。有关更多信息,请参见默认WPF主题

Note

设置视觉属性仅在该属性同时存在于控件的默认模板中并且通过使用TemplateBinding进行设置时才有效。您可以在通过创建ControlTemplate定制现有控件的外观的更改控件的视觉结构”部分中找到视觉属性列表。

    public class TextBox : TextBoxBase, IAddChild, ITextBoxViewHost
    {
        public static readonly System.Windows.DependencyProperty CharacterCasingProperty;
        public static readonly System.Windows.DependencyProperty MaxLengthProperty;
        public static readonly System.Windows.DependencyProperty MaxLinesProperty;
        public static readonly System.Windows.DependencyProperty MinLinesProperty;
        public static readonly System.Windows.DependencyProperty TextAlignmentProperty;
        public static readonly System.Windows.DependencyProperty TextDecorationsProperty;
        public static readonly System.Windows.DependencyProperty TextProperty;
        public static readonly System.Windows.DependencyProperty TextWrappingProperty;


        //获取或设置插入符号的插入位置索引。
        public int CaretIndex { get; set; }

        //获取或设置向文本框中手动输入字符时如何确定字符的大小写格式。
        public System.Windows.Controls.CharacterCasing CharacterCasing { get; set; }

        //获取文本框中的总行数。
        public int LineCount { get; }

        //获取 TextBox 的逻辑子元素的枚举器。
        protected internal override System.Collections.IEnumerator LogicalChildren { get; }

        //获取或设置可在文本框中手动输入的最大字符数。
        public int MaxLength { get; set; }

        //获取或设置最大可见行数。
        public int MaxLines { get; set; }

        //获取或设置最小可见行数。
        public int MinLines { get; set; }

        //获取或设置文本框中当前选择的内容。
        public string SelectedText { get; set; }

        //获取或设置一个值,该值指示文本框中当前选择的字符数。
        public int SelectionLength { get; set; }

        //获取或设置当前选择的起始位置的字符索引。
        public int SelectionStart { get; set; }

        //获取或设置文本框的文本内容。
        public string Text { get; set; }

        //获取或设置文本框内容的水平对齐方式。
        public System.Windows.TextAlignment TextAlignment { get; set; }

        //获取要应用到文本框的文本修饰。
        public System.Windows.TextDecorationCollection TextDecorations { get; set; }

        //获取或设置文本框中文本的换行方式。
        public System.Windows.TextWrapping TextWrapping { get; set; }

        //获取文本框的文本内容的当前有效版式变体。
        public System.Windows.Documents.Typography Typography { get; }

        //清除文本框中的所有内容。
        public void Clear();

        //返回指定行中第一个字符的从零开始的字符索引。
        public int GetCharacterIndexFromLineIndex(int lineIndex);

        //返回最接近指定点的字符的索引,该索引从零开始。
        public int GetCharacterIndexFromPoint(System.Windows.Point point, bool snapToText);

        //返回文本框中当前可见的第一行的行索引。
        public int GetFirstVisibleLineIndex();

        //返回文本框中当前可见的最后一行的行索引。
        public int GetLastVisibleLineIndex();

        //返回包含指定字符索引的行的从零开始的行索引。
        public int GetLineIndexFromCharacterIndex(int charIndex);

        //返回指定行中的字符数。
        public int GetLineLength(int lineIndex);

        //返回当前显示在指定的行的文本。
        public string GetLineText(int lineIndex);

        //返回文本框的内容中下一个拼写错误的起始字符索引。
        public int GetNextSpellingErrorCharacterIndex(int charIndex, System.Windows.Documents.LogicalDirection direction);

        //返回指定索引处字符的某个边缘的边框。
        public System.Windows.Rect GetRectFromCharacterIndex(int charIndex);
        public System.Windows.Rect GetRectFromCharacterIndex(int charIndex, bool trailingEdge);

        //返回与指定字符索引处的任何拼写错误关联的 SpellingError 对象。
        public System.Windows.Controls.SpellingError GetSpellingError(int charIndex);

        //返回包括指定字符的任何拼写错误的起始字符索引。
        public int GetSpellingErrorStart(int charIndex);

        //返回包括指定字符的任何拼写错误的长度。
        public int GetSpellingErrorLength(int charIndex);

        //按其内容设置文本框的大小。
        protected override System.Windows.Size MeasureOverride(System.Windows.Size constraint);

        //为文本框创建并返回一个 AutomationPeer 对象。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //当存在于元素上的一个或多个依赖属性的有效值更改时被调用。
        protected override void OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs e);

        //将指定行索引处的行滚动到视图中。
        public void ScrollToLine(int lineIndex);

        //选择文本框中的文本范围。
        public void Select(int start, int length);

        //返回一个值,该值指示在序列化 Text 对象期间,是否应对 TextBox 属性的有效值进行序列化。
        public bool ShouldSerializeText(System.Windows.Markup.XamlDesignerSerializationManager manager);

        //在所有情况下均引发异常。
        void IAddChild.AddChild(object value);

        //将节点的文本内容添加到对象。
        void IAddChild.AddText(string text);
    }

2.7.15 DocumentViewerBase

提供用于显示固定内容或流动内容(分别由 FixedDocument 或 FlowDocument 表示)的查看器的基类。

DocumentViewerBase 是一个最小基类,旨在仅提供在文档查看方案中通用的基本功能。 此基类不提供用户界面。

   public abstract class DocumentViewerBase : Control, IAddChild, IServiceProvider
    {
        public static readonly System.Windows.DependencyProperty CanGoToNextPageProperty;
        protected static readonly System.Windows.DependencyPropertyKey CanGoToNextPagePropertyKey;
        public static readonly System.Windows.DependencyProperty CanGoToPreviousPageProperty;
        protected static readonly System.Windows.DependencyPropertyKey CanGoToPreviousPagePropertyKey;
        public static readonly System.Windows.DependencyProperty DocumentProperty;
        public static readonly System.Windows.DependencyProperty IsMasterPageProperty;
        public static readonly System.Windows.DependencyProperty MasterPageNumberProperty;
        protected static readonly System.Windows.DependencyPropertyKey MasterPageNumberPropertyKey;
        public static readonly System.Windows.DependencyProperty PageCountProperty;
        protected static readonly System.Windows.DependencyPropertyKey PageCountPropertyKey;

        //获取一个值,该值指示此查看器是否能跳转到当前 Document 的下一页。
        public virtual bool CanGoToNextPage { get; }

        //获取一个值,该值指示此查看器是否能跳转到当前 Document 的上一页。
        public virtual bool CanGoToPreviousPage { get; }

        //获取或设置要分页或由查看器显示的 IDocumentPaginatorSource。
        public System.Windows.Documents.IDocumentPaginatorSource Document { get; set; }

        //获取查看器的逻辑树中子级的枚举器。
        protected internal override System.Collections.IEnumerator LogicalChildren { get; }

        //获取当前母版页的页码。
        public virtual int MasterPageNumber { get; }

        //获取当前 Document 的总页数。
        public int PageCount { get; }

        //获取查看器所包含的活动 DocumentPageView 对象的只读集合。
        public System.Collections.ObjectModel.ReadOnlyCollection<System.Windows.Controls.Primitives.DocumentPageView> PageViews { get; }

        //取消任何当前打印作业。
        public void CancelPrint();

        //返回一个值,该值指示查看器是否能跳转到指定的页码。
        public virtual bool CanGoToPage(int pageNumber);

        //导致查看器跳转到当前文档的第一页(由 Document 属性表示)。
        public void FirstPage();

        //返回指定的依赖对象的 IsMasterPage 附加属性值。
        public static bool GetIsMasterPage(System.Windows.DependencyObject element);

        //返回此查看器的当前母版 DocumentPageView。
        protected System.Windows.Controls.Primitives.DocumentPageView GetMasterPageView();

        //创建并返回与当前显示文档(由 Document 属性表示)关联的 DocumentPageView 对象的新的只读集合。
        protected virtual System.Collections.ObjectModel.ReadOnlyCollection<System.Windows.Controls.Primitives.DocumentPageView> GetPageViewsCollection(out bool changed);

        //导致查看器跳转到指定页码。
        public void GoToPage(int pageNumber);

        //导致要重新生成 PageViews 工作集合。
        protected void InvalidatePageViews();

        //导致查看器跳转到当前文档的最后一页(由 Document 属性表示)。
        public void LastPage();

        //导致查看器跳转到当前文档的下一页(由 Document 属性表示)。
        public void NextPage();

        //为查看器构建可视化树。
        public override void OnApplyTemplate();

        //只要 RequestBringIntoView 事件在其路由中到达从此类派生的元素,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected virtual void OnBringIntoView(System.Windows.DependencyObject element, System.Windows.Rect rect, int pageNumber);

        //处理 CancelPrint 路由命令。
        protected virtual void OnCancelPrintCommand();

        //创建并返回此查看器的 AutomationPeer 对象。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //只要修改 Document 属性就会调用此方法。
        protected virtual void OnDocumentChanged();

        //DPI 比例更改时调用。 将流文档的 DPI 设置为新的比例。
        protected override void OnDpiChanged(System.Windows.DpiScale oldDpiScaleInfo, System.Windows.DpiScale newDpiScaleInfo);

        //处理 FirstPage 路由命令。
        protected virtual void OnFirstPageCommand();

        //处理 GoToPage 路由命令。
        protected virtual void OnGoToPageCommand(int pageNumber);

        //处理 LastPage 路由命令。
        protected virtual void OnLastPageCommand();

        //只要修改 MasterPageNumber 属性就会调用此方法。
        protected virtual void OnMasterPageNumberChanged();

        //处理 NextPage 路由命令。
        protected virtual void OnNextPageCommand();

        //只要修改此查看器的 DocumentPageView 对象(由 PageViews 属性表示)的工作集,就会调用此方法
        protected virtual void OnPageViewsChanged();

        //处理 PreviousPage 路由命令。
        protected virtual void OnPreviousPageCommand();

        //处理 Print 路由命令。
        protected virtual void OnPrintCommand();

        //导致查看器跳转到当前文档的上一页(由 Document 属性表示)。
        public void PreviousPage();

        //调用标准的“打印”对话框,此对话框可用于打印查看器的内容和配置打印首选项。
        public void Print();

        //设置指定依赖对象上的 IsMasterPage 附加属性。
        public static void SetIsMasterPage(System.Windows.DependencyObject element, bool value);

        //当与此查看器(由 DocumentPageView 属性表示)关联的 PageViews 项目的集合更改时发生。
        public event EventHandler PageViewsChanged;

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用。
        object IServiceProvider.GetService(Type serviceType);

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用
        void IAddChild.AddChild(object value);

        //此类型或成员支持 Windows Presentation Foundation (WPF) 基础结构,并且不应在代码中直接使用。
        void IAddChild.AddText(string text);

        //DocumentViewerBase.IsMasterPage 附加属性
        //获取一个值,该值指示是否应将查看器中的子元素用作母版页。
        //see GetIsMasterPage, and SetIsMasterPage

    }

2.7.16 Thumb

表示可以由用户拖动的控件。

Thumb控件可以包含在其他控件(如ScrollBar 或Slider 控件)中 ,以允许用户更改控件的值。 Thumb还可用于调整控件的大小。 例如, Thumb 窗口角中的控件可以提供一个位置,用户可以使用鼠标单击鼠标来开始调整大小操作。

Thumb提供DragStartedDragCompletedDragDelta事件来管理与鼠标指针关联的拖动操作。当用户按下鼠标左键时,Thumb控件将接收逻辑焦点和鼠标捕获,并引发DragStarted事件。虽然Thumb控件具有焦点和鼠标捕获功能,但是DragDelta事件可以无限制地多次引发。当用户释放鼠标左键时,Thumb控件将丢失鼠标捕获,并引发DragCompleted事件。

事件信息提供了位置变化,但没有重新定位Thumb。由于拖动操作,您必须手动更改或重新放置Thumb或要调整大小或更改的任何其他元素。将拇指控制不提供拖放和拖放功能。

一个Thumb控制可以收到鼠标捕获,但不能接收键盘焦点。因此,与键盘焦点相对应的IsKeyboardFocused属性设置为false。该值将覆盖父类Control,设置此属性为true

为了提供拖动功能,为MouseLeftButtonDownMouseLeftButtonUpMouseMove事件提供了类处理。有关更多信息,请参见OnMouseLeftButtonDownOnMouseLeftButtonUpOnMouseMove方法。

Thumb是在滚动可视区域或视口中的内容的Track控件的一部分时,Thumb的大小反映了视口的大小。有关更多信息,请参见Track类。下图显示了Thumb控件,它是ScrollBar控件的一部分。

ScrollBar 图

自定义Thumb控件

若要将相同的属性设置应用于多个Thumb控件,请使用“样式”属性。您可以修改默认的ControlTemplate以使控件具有唯一的外观。有关创建ControlTemplate的更多信息,请参见通过创建ControlTemplate自定义现有控件的外观。若要查看特定于Thumb的零件和状态,请参见Thumb样式和模板

此控件的依赖项属性可以由控件的默认样式设置。如果使用默认样式设置属性,则当控件出现在应用程序中时,该属性可能会从其默认值更改。默认样式由运行应用程序时使用的桌面主题确定。有关更多信息,请参见默认WPF主题

Note

设置视觉属性仅在该属性同时存在于控件的默认模板中并且通过使用TemplateBinding进行设置时才有效。您可以在通过创建ControlTemplate定制现有控件的外观的更改控件的视觉结构”部分中找到视觉属性列表。

    public class Thumb : Control
    {
        public static readonly System.Windows.RoutedEvent DragCompletedEvent;
        public static readonly System.Windows.RoutedEvent DragDeltaEvent;
        public static readonly System.Windows.RoutedEvent DragStartedEvent;
        public static readonly System.Windows.DependencyProperty IsDraggingProperty;

        //获取 Thumb 控件是否具有逻辑焦点和鼠标捕获,以及鼠标左键是否按下。
        public bool IsDragging { get; protected set; }

        //取消对 Thumb 的拖动操作。
        public void CancelDrag();

        //创建 AutomationPeer 控件的 Thumb。
        protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer();

        //响应 IsDragging 属性值的更改。
        protected virtual void OnDraggingChanged(System.Windows.DependencyPropertyChangedEventArgs e);

        //提供用于 MouseLeftButtonDown 事件的类处理。
        protected override void OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs e);

        //提供用于 MouseLeftButtonUp 事件的类处理。
        protected override void OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e);

        //提供用于 MouseMove 事件的类处理。
        protected override void OnMouseMove(System.Windows.Input.MouseEventArgs e);

        //在 Thumb 控件失去鼠标捕获时发生。
        public event System.Windows.Controls.Primitives.DragCompletedEventHandler DragCompleted;

        //当 Thumb 控件具有逻辑焦点和鼠标捕获时,随着鼠标位置更改发生一次或多次。
        public event System.Windows.Controls.Primitives.DragDeltaEventHandler DragDelta;

        //Thumb.DragStarted 事件
        public event System.Windows.Controls.Primitives.DragStartedEventHandler DragStarted;

    }

 


2.7.17 RangeBase

表示具有特定范围内值的元素。

RangeBase控件具有可在 Minimum 和Maximum 属性之间设置Value 的值 。 RangeBase直观地指示其Value 。 在某些情况下,用户可以以交互方式设置值;在其他情况下,只能以编程方式设置值。 用户可以设置ScrollBar 和Slider的  Value ,但不能设置 ProgressBar 。

    public abstract class RangeBase : Control
    {
        public static readonly System.Windows.DependencyProperty LargeChangeProperty;
        public static readonly System.Windows.DependencyProperty LargeChangeProperty;
        public static readonly System.Windows.DependencyProperty MinimumProperty;
        public static readonly System.Windows.DependencyProperty SmallChangeProperty;
        public static readonly System.Windows.RoutedEvent ValueChangedEvent;
        public static readonly System.Windows.DependencyProperty ValueProperty;


        //获取或设置要从 Value 控件的 RangeBase 加上或减去的值。
        public double LargeChange { get; set; }

        //获取或设置范围元素的最大可能的 Value。
        public double Maximum { get; set; }

        //获取或设置范围元素的 Minimum 可能的 Value。
        public double Minimum { get; set; }

        //获取或设置要从 Value 控件的 Value 加上或减去的 RangeBase。
        public double SmallChange { get; set; }

        //获取或设置范围控件的当前数量。
        public double Value { get; set; }

        //当 Maximum 属性更改时调用。
        protected virtual void OnMaximumChanged(double oldMaximum, double newMaximum);

        //当 Minimum 属性更改时调用。
        protected virtual void OnMinimumChanged(double oldMinimum, double newMinimum);

        //引发 ValueChanged 路由事件。
        protected virtual void OnValueChanged(double oldValue, double newValue);

        //提供 RangeBase 对象的字符串表示形式。
        public override string ToString();

        //在范围值改变时发生。
        public event System.Windows.RoutedPropertyChangedEventHandler<double> ValueChanged;
    }

2.7.18 TextBoxBase

为文本编辑控件提供功能的抽象基类,包括 TextBox 和 RichTextBox

    public abstract class TextBoxBase : Control
    {
        public static readonly System.Windows.DependencyProperty AcceptsReturnProperty;
        public static readonly System.Windows.DependencyProperty AcceptsTabProperty;
        public static readonly System.Windows.DependencyProperty AutoWordSelectionProperty;
        public static readonly System.Windows.DependencyProperty CaretBrushProperty;
        public static readonly System.Windows.DependencyProperty HorizontalScrollBarVisibilityProperty;
        public static readonly System.Windows.DependencyProperty IsInactiveSelectionHighlightEnabledProperty;
        public static readonly System.Windows.DependencyProperty IsReadOnlyCaretVisibleProperty;
        public static readonly System.Windows.DependencyProperty IsReadOnlyProperty;
        public static readonly System.Windows.DependencyProperty IsSelectionActiveProperty;
        public static readonly System.Windows.DependencyProperty IsUndoEnabledProperty;
        public static readonly System.Windows.DependencyProperty SelectionBrushProperty;
        public static readonly System.Windows.RoutedEvent SelectionChangedEvent;
        public static readonly System.Windows.DependencyProperty SelectionOpacityProperty;
        public static readonly System.Windows.DependencyProperty SelectionTextBrushProperty;
        public static readonly System.Windows.RoutedEvent TextChangedEvent;
        public static readonly System.Windows.DependencyProperty UndoLimitProperty;
        public static readonly System.Windows.DependencyProperty VerticalScrollBarVisibilityProperty;


        //获取或设置一个值,该值指示在用户按 ENTER 键时文本编辑控件如何响应。
        public bool AcceptsReturn { get; set; }

        //获取或设置一个值,该值指示在用户按 TAB 键时文本编辑控件如何响应。
        public bool AcceptsTab { get; set; }

        //获取或设置一个值,该值决定在用户通过在单词中拖动鼠标来选择单词的一部分时是否同时选定该单词的其余部分。
        public bool AutoWordSelection { get; set; }

        //获取一个值,该值指示是否可重做最新的撤消操作。
        public bool CanRedo { get; }

        //获取一个值,该值指示是否可撤消最新的操作。
        public bool CanUndo { get; }

        //获取或设置用于绘制文本框的插入符号的画笔。
        public System.Windows.Media.Brush CaretBrush { get; set; }

        //获取可见内容区域的垂直大小。
        public double ExtentHeight { get; }

        //获取可见内容区域的水平大小。
        public double ExtentWidth { get; }

        //获取或设置水平滚动条位置。
        public double HorizontalOffset { get; }

        //获取或设置一个值,该值指示是否显示水平滚动条。
        public System.Windows.Controls.ScrollBarVisibility HorizontalScrollBarVisibility { get; set; }

        //获取或设置指示当文本框没有焦点时,文本框是否显示所选文本的值。
        public bool IsInactiveSelectionHighlightEnabled { get; set; }

        //获取或设置一个值,该值指示文本编辑控件对于与该控件交互的用户是否是只读的。
        public bool IsReadOnly { get; set; }

        //获取或设置一个值,该值指示只读文本框是否显示插入符号。
        public bool IsReadOnlyCaretVisible { get; set; }

        //获取指示文本框是否具有焦点和选择文本的值。
        public bool IsSelectionActive { get; }

        //获取或设置一个值,该值指示文本编辑控件是否支持撤消功能。
        public bool IsUndoEnabled { get; set; }

        //获取或设置会突出显示选定文本的画笔。
        public System.Windows.Media.Brush SelectionBrush { get; set; }

        //获取或设置 SelectionBrush 的不透明度。
        public double SelectionOpacity { get; set; }

        //获取或设置一个值,此值定义用于所选文本的画笔。
        public System.Windows.Media.Brush SelectionTextBrush { get; set; }

        //获取一个 SpellCheck 对象,通过它可以访问 TextBoxBase 或 RichTextBox 文本内容中的拼写错误。
        public System.Windows.Controls.SpellCheck SpellCheck { get; }

        //获取或设置存储在撤消队列中的操作的数目。
        public int UndoLimit { get; set; }

        //获取或设置垂直滚动条的位置。
        public double VerticalOffset { get; }

        //获取或设置一个值,该值指示是否显示垂直滚动条。
        public System.Windows.Controls.ScrollBarVisibility VerticalScrollBarVisibility { get; set; }

        //获取可滚动的内容区域的垂直大小。
        public double ViewportHeight { get; }

        //获取可滚动的内容区域的水平大小。
        public double ViewportWidth { get; }

        //将字符串追加到文本控件的内容。
        public void AppendText(string textData);

        //开始更改块。
        public void BeginChange();

        //将文本控件的当前选定内容复制到 Clipboard。
        public void Copy();

        //从文本编辑控件中删除当前选定内容,并将其复制到 Clipboard。
        public void Cut();

        //创建更改块。
        public IDisposable DeclareChangeBlock();

        //结束更改块。
        public void EndChange();

        //将控件的内容向下滚动一行。
        public void LineDown();

        //将控件的内容向左滚动一行。
        public void LineDown();

        //将控件的内容向右滚动一行。
        public void LineRight();

        //将控件的内容向上滚动一行。
        public void LineUp();

        //锁定应用程序的撤消堆栈的最新撤消单元。 这将阻止锁定的单元与后续添加的撤消单元合并。
        public void LockCurrentUndoUnit();

        //在应用控件模板时进行调用。
        public override void OnApplyTemplate();

        //只要未处理的 ContextMenuOpening 路由事件在其路由中到达此类,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnContextMenuOpening(System.Windows.Controls.ContextMenuEventArgs e);

        //每当未处理的 DragEnter 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnDragEnter(System.Windows.DragEventArgs e);

        //每当未处理的 DragLeave 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnDragLeave(System.Windows.DragEventArgs e);

        //每当未处理的 DragOver 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnDragOver(System.Windows.DragEventArgs e);

        //每当未处理的 DragEnter 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnDrop(System.Windows.DragEventArgs e);

        //每当未处理的 GiveFeedback 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnGiveFeedback(System.Windows.GiveFeedbackEventArgs e);

        //每当未处理的 GotKeyboardFocus 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnGotKeyboardFocus(System.Windows.Input.KeyboardFocusChangedEventArgs e);

        //每当未处理的 KeyDown 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e);

        //每当未处理的 KeyUp 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnKeyUp(System.Windows.Input.KeyEventArgs e);

        //引发 LostFocus 事件(用提供的参数)。
        protected override void OnLostFocus(System.Windows.RoutedEventArgs e);

        //每当未处理的 LostKeyboardFocus 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnLostKeyboardFocus(System.Windows.Input.KeyboardFocusChangedEventArgs e);

        //每当未处理的 MouseDown 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnMouseDown(System.Windows.Input.MouseButtonEventArgs e);

        //每当未处理的 MouseMove 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnMouseMove(System.Windows.Input.MouseEventArgs e);

        //每当未处理的 MouseUp 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnMouseUp(System.Windows.Input.MouseButtonEventArgs e);

        //当将 MouseWheel 事件路由到此类(或从此类继承的类)时进行调用。
        protected override void OnMouseWheel(System.Windows.Input.MouseWheelEventArgs e);

        //KeyDown 发生时调用。
        protected override void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e);

        //每当未处理的 QueryContinueDrag 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnQueryContinueDrag(System.Windows.QueryContinueDragEventArgs e);

        //每当未处理的 QueryCursor 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnQueryCursor(System.Windows.Input.QueryCursorEventArgs e);

        //在插入符号或当前选定内容更改位置时进行调用。
        protected virtual void OnSelectionChanged(System.Windows.RoutedEventArgs e);

        //在控件模板更改时进行调用。
        protected override void OnTemplateChanged(System.Windows.Controls.ControlTemplate oldTemplate, System.Windows.Controls.ControlTemplate newTemplate);

        //在此编辑控件中的内容发生更改时进行调用。
        protected virtual void OnTextChanged(System.Windows.Controls.TextChangedEventArgs e);

        //每当未处理的 TextInput 附加路由事件在其路由中发生在一个从此类派生的元素上时,就会调用此方法。 实现此方法可为此事件添加类处理。
        protected override void OnTextInput(System.Windows.Input.TextCompositionEventArgs e);

        //将控件的内容向下滚动一页。
        public void PageDown();

        //将控件的内容向左滚动一页。
        public void PageLeft();

        //将控件的内容向右滚动一页。
        public void PageRight();

        //将控件的内容向上滚动一页。
        public void PageUp();

        //将剪贴板的内容粘贴到文本编辑控件中的当前选定内容上。
        public void Paste();

        //撤消最新的撤消命令。 换句话说,重做撤消堆栈上的最新撤消单元。
        public bool Redo();

        //将编辑控件的视图滚动到内容的末尾。
        public void ScrollToEnd();

        //将编辑控件的视图滚动到视区的开头。
        public void ScrollToHome();

        //将编辑控件的内容滚动到指定的水平偏移。
        public void ScrollToHorizontalOffset(double offset);

        //将编辑控件的内容滚动到指定的垂直偏移。
        public void ScrollToVerticalOffset(double offset);

        //选择文本编辑控件的全部内容。
        public void SelectAll();

        //撤消最新的撤消命令。 换句话说,撤消位于撤消堆栈上的最新撤消单元。
        public bool Undo();

        //在文本选择改变时发生。
        public event System.Windows.RoutedEventHandler SelectionChanged;

        //在文本元素中的内容更改的情况下发生。
        public event System.Windows.Controls.TextChangedEventHandler TextChanged;
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值