C# 为 Windows 表单做动态继承之类的事情吗?
C# Do something like dynamic inheritance for Windows Forms?
我正在使用第三方 Windows 表单库,它有一些表单主题选项,例如使表单 windows 看起来像 Office Forms (class Office2007Form) 或 Metro表格(class MetroForm)。该库由 SyncFusion 制作。
https://www.syncfusion.com/products/windows-forms/office2007form
https://www.syncfusion.com/products/windows-forms/metroform
不幸的是,没有一种形式 class 可以让我通过 属性 设置主题(例如:SyncFusionForm.Theme = Metro)。相反,classes 是分开的,因此如果我想支持这两个主题,我必须为每个主题创建重复的表单,使用相同的控件和几乎相同的代码。
有什么方法可以通过模拟接口的多重继承来动态设置这样的东西吗?我没有 classes 形式的来源,所以我的选择不太灵活。要创建一个 SyncFusion 主题表单,我目前只创建一个 Windows 表单并将基础 class 从 'Form' 更改为 'Office2007Form' 或 'MetroForm' 然后有我为颜色等设置的一些属性...
如果有人知道如何在不复制我的控件和代码的情况下执行此操作,请告诉我。提前致谢!
我的第一直觉是将所有内容都放在 UserControl 上。然后根据需要将用户控件添加到 Office2007Form 或 MetroForm 实例。
我遵循'favour composition over inheritence'
的设计模式原则
我正在使用第三方 Windows 表单库,它有一些表单主题选项,例如使表单 windows 看起来像 Office Forms (class Office2007Form) 或 Metro表格(class MetroForm)。该库由 SyncFusion 制作。
https://www.syncfusion.com/products/windows-forms/office2007form
https://www.syncfusion.com/products/windows-forms/metroform
不幸的是,没有一种形式 class 可以让我通过 属性 设置主题(例如:SyncFusionForm.Theme = Metro)。相反,classes 是分开的,因此如果我想支持这两个主题,我必须为每个主题创建重复的表单,使用相同的控件和几乎相同的代码。
有什么方法可以通过模拟接口的多重继承来动态设置这样的东西吗?我没有 classes 形式的来源,所以我的选择不太灵活。要创建一个 SyncFusion 主题表单,我目前只创建一个 Windows 表单并将基础 class 从 'Form' 更改为 'Office2007Form' 或 'MetroForm' 然后有我为颜色等设置的一些属性...
如果有人知道如何在不复制我的控件和代码的情况下执行此操作,请告诉我。提前致谢!
我的第一直觉是将所有内容都放在 UserControl 上。然后根据需要将用户控件添加到 Office2007Form 或 MetroForm 实例。
我遵循'favour composition over inheritence'
的设计模式原则