提供文本对齐和字体系列属性的超类/接口

本文关键字:属性 超类 接口 系列 字体 文本 对齐 | 更新日期: 2023-09-27 18:34:14

我正在尝试设置几个不同的WPF RichTextBox控件的属性,如List,ListItem,Paragraph。例如,我要设置的属性是 FontFamily 和 TextAlignment。

我想尽可能通用地执行此操作,因此我有一个用于 TextAlignment 的 setter,一个用于 FontFamily 的 setter,依此类推,但我无法找到提供所有这些属性的通用超类。

你能告诉我我正在寻找什么超类,如果可能的话,如何找出哪个超类通常提供不同的属性?

编辑:对案件的更详细说明:
FontFamily 继承自 TextElement,在 Paragraph 和 ListItem
中TextAdjust 显然在每个类中都继承自 Block,但 ListItem 除外

提供文本对齐和字体系列属性的超类/接口

您可以覆盖给定 UIElement 的元数据。

例如,如果要设置所有框架元素的默认字体大小:

System.Windows.Documents
              .TextElement
              .FontSizeProperty
              .OverrideMetadata(typeof(FrameworkElement), new PropertyMetadata(5));

UIElement/FrameworkElement 是通用的,如果你只想将这些默认值应用于少数类型,你需要为你想要的每个类型重复这一行。

保存所有Font...属性的公共基类是 TextElement,而 TextAlignment 是 ListItem 的属性。

当您浏览 MSDN 页面时,您可以自己轻松找到这一点。左侧有一个树视图,显示类的构造函数、字段、方法、属性和事件。如果单击其中一个项,则会显示在该类中定义的项的列表。

您尝试设置的所有属性都是依赖项属性。您可以使用 DependencyObject.SetValue 方法,例如:

DependencyObject x;
x.SetValue(Block.TextAlignmentProperty, TextAlignment.Justify); 

这只是找到正确的依赖项属性描述的问题。