首页 文章

WPF中的自定义控件在Winforms中是必要的吗?

提问于
浏览
1

在一次采访中,该公司询问我在WPF中使用自定义控件 . 我发现了WPF创建控件(datatemplate,控件模板,样式,触发器等等)的所有功能,必须编写一个覆盖OnRender方法的自定义控件,实际上并不是必需的 . 后来发现他们的大部分开发都在Winforms中 .

如果从100%WPF方向控制,是否有必要使用OnRender覆盖编写自定义控件? Winform方法实际上没有使用创建控件的WPF组合技术,它似乎不是基于WPF知识的问题 .

谢谢哈罗德

1 回答

  • 3

    好问题(虽然有点基于意见)但没有答案?定影 .

    如果你是winforms经验丰富的开发人员,那么在wpf中仍然可以接受winform-way的思考 . 一阵子 . 在这里你可能会发现自己主要是自定义控件(包含xaml和代码,甚至没有xaml) . 但是你学的越多,你所需要的就越少 . 许多任务都可以在wpf中完成,因为它非常灵活 . 每个实体都包含可以自定义的内容:模板,样式,转换器,行为甚至是简单的事件处理 .

    您可以从自定义控件开始,然后找出您不需要的东西(或者可以将其降级为简单的重新定位) .

    当我开始制作第一个严重的wpf项目时,有3个自定义控件,它们仍然存在 . 这就是原因 .

    • 概述了TextBlock . 仅仅因为您需要自定义 OnRender (为轮廓构建和绘制几何体) .

    • 动画内容 . 在更改内容时应用过渡动画 . 我几乎可以在没有自定义控制的情况下完成它,但是存在一个问题 - 在从左到右,从右到左,从上到下或向下转换时计算动画逻辑 . 它很容易在一个自定义控件中使用 . 但可能与 UserControl 和视图,但不是很漂亮 .

    • 图表 . 仅仅因为它太复杂而无法呈现 Visual 并且因为使用gdi的性能会在 ms 中绘制数百万个点(数千个数字) .

    结论:它很好,也很有用,虽然比在winforms中更少(你只需要 no 其他选项) .

相关问题