1

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

我想尽可能通用,所以我有一个用于 TextAlignment 的设置器,一个用于 FontFamily 的设置器,等等,但我找不到提供所有这些属性的通用超类。

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

编辑:案例的更详细解释:
FontFamily 继承自 TextElement,在 Paragraph 和 ListItem
中 TextAdjust 显然在每个类中都继承自 Block,但 ListItem

4

3 回答 3

0

包含所有Font...属性的通用基类是TextElement,而ListItemTextAlignment是一个属性。

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

于 2012-05-16T08:33:49.567 回答
0

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

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

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

于 2012-05-16T08:38:27.863 回答
0

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

例如,如果要设置所有 FrameworkElements 的默认 FontSize:

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

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

于 2012-05-16T08:39:03.980 回答