WPF:为什么是VisualTreeHelper.GetDrawing(Visual v),而不是Visual.GetDrawing()?

3

只是好奇--乍一看似乎更加笨拙和不易发现,但是否有充分的理由呢?


考虑到Visual确实有一个内部的GetDrawing方法,而VTH.GetDrawing只是直接调用它,这就更加令人好奇了。 - itowlson
此问题与Silverlight无关。 - AnthonyWJones
啊,你说得对 - 我应该检查后不应该假设它是一样的。 - Max Strini
1个回答

2
我认为它有意模糊一些,因为大多数情况下你不应该直接操作可视树,这符合“框架设计指南”哲学中的“常用类应遵循基本场景”的理念。
由于 Visual 中的任何方法都会在几乎所有 WPF 控件上使用,所以他们选择将这些高级方法放在一个单独的类中。框架设计者微妙地告诉你的是,“除非你确实知道没有更好的方法来完成你正在做的事情,否则你不应该使用此函数”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接