gpt4 book ai didi

c# - 分解和简化复杂的 WPF 自定义控件的好方法是什么?

转载 作者:行者123 更新时间:2023-11-30 12:53:22 30 4
gpt4 key购买 nike

我正在寻找一种简化和组织复杂的 WPF 自定义控件的好方法。

我的第一个想法是将其分解为两个更简单的控件。为了便于解释,我将它们称为 SimpleControl 和 AdvancedControl。

SimpleControl 包含所有核心功能,并且可重复使用。

AdvancedControl 依赖于 SimpleControl 并包含输入处理和额外的功能。 AdvancedControl 的可重用性低于 SimpleControl,因为它包含额外的 UI 元素和特定于应用程序的输入处理。

AdvancedControl 的视觉模板定义了对 SimpleControl 的依赖。当调用 OnApplyTemplate 时,它​​会缓存对嵌入式 SimpleControl 的引用。

这种方法的主要问题是所有在 SimpleControl 上可用的属性和方法我也希望在 AdvancedControl 上可用。这意味着需要大量工作在 AdvancedControl 上实现相同的依赖属性和方法,然后将它们转发给 SimpleControl。这似乎不是特别优雅。

我也考虑过从 SimpleControl 继承 AdvancedControl,但我认为在这种情况下,我将不得不完全重新定义 SimpleControl 的视觉模板,而不是仅仅重用现有的模板。

谁能想出更好的方法来提取复杂的 WPF 自定义控件?

最佳答案

可以继承样式:

<Style TargetType="{x:Type AdvancedControl}" BasedOn="{x:Type SimpleControl}" />

关于c# - 分解和简化复杂的 WPF 自定义控件的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2544416/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com