2010-02-05 43 views
3

只是好奇 - 表面看來它似乎更尷尬,不易發現,但有一個很好的理由嗎?WPF:爲什麼它是VisualTreeHelper.GetDrawing(Visual v)而不是Visual.GetDrawing()?

+0

當你考慮Visual有一個內部的GetDrawing方法,並且VTH.GetDrawing只是直接調用它時,會非常好奇。 – itowlson 2010-02-05 02:01:32

+0

這個問題與Silverlight無關。 – AnthonyWJones 2010-02-05 18:39:11

+0

嗯,你是對的 - 假設它沒有檢查就是一樣的... – 2010-02-06 07:34:01

回答

2

我相信這是故意混淆了一下,因爲你不應該直接擺弄大多數時間的視覺樹,符合「常用類應該遵循基本場景」的「框架設計指南」哲學。

由於Visual中的任何方法幾乎都是任何WPF控件,所以他們選擇將這些高級方法放在單獨的類中。框架設計師巧妙地告訴你的是,「除非你知道沒有更好的方法來做你正在做的事情,否則你不應該使用這個功能」。

+0

有趣的 - 一種「軟性信息隱藏」的形式。 – 2010-02-06 00:31:40

相關問題