我试图弄清楚添加自定义 UI 的最佳方法是什么(我不想故意将其称为自定义控件)。我想创建一个自定义控件,但我并不需要对其进行模板化。我想使用其他控件直观地实现它。在我的示例中,我正在尝试创建一个控件,该控件使用 Path 对象进行实现。我希望它在创建时将路径控件“添加”到可视化树中。我希望它公开几个依赖属性,并且我希望它在依赖属性更改时更新 Path 对象。
我的第一种方法是从 Control 继承它,定义路径“Part”,将其定位在“OnApplyTemplate”例程中,并在需要时对其进行更新,但这似乎是一个巨大的矫枉过正。我现在实现的控件能够获取不同的控件模板,但它完全没用,因为该功能必须假定其中有一个路径对象,并且它覆盖了该路径的大部分属性。它还公开了许多我不需要的属性,例如 Background、BorderBrush、BorderThickness,我不使用所有这些属性,而是根据我公开的其他属性进行计算。
所以问题是,我是否应该从 FrameworkElement 继承,如果是,我如何“植入”我想用来实现新的自定义控件的 Path 对象?