提供TextAlignment和FontFamily属性的超类/接口

时间:2012-05-16 08:23:35

标签: c# wpf

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

我想尽可能通用,所以我有一个用于TextAlignment的setter,一个用于FontFamily的setter,依此类推,但我找不到提供所有这些属性的公共超类。

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

编辑:案例的更详细说明:
FontFamily继承自Paragraph和ListItem中的TextElement TextAdjust继承自Block,显然是每个类,但ListItem

3 个答案:

答案 0 :(得分:0)

包含所有Font...属性的公共基类是TextElement,而TextAlignmentListItem的属性。

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

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

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