3
只是好奇 - 表面看來它似乎更尷尬,不易發現,但有一個很好的理由嗎?WPF:爲什麼它是VisualTreeHelper.GetDrawing(Visual v)而不是Visual.GetDrawing()?
只是好奇 - 表面看來它似乎更尷尬,不易發現,但有一個很好的理由嗎?WPF:爲什麼它是VisualTreeHelper.GetDrawing(Visual v)而不是Visual.GetDrawing()?
我相信這是故意混淆了一下,因爲你不應該直接擺弄大多數時間的視覺樹,符合「常用類應該遵循基本場景」的「框架設計指南」哲學。
由於Visual中的任何方法幾乎都是任何WPF控件,所以他們選擇將這些高級方法放在單獨的類中。框架設計師巧妙地告訴你的是,「除非你知道沒有更好的方法來做你正在做的事情,否則你不應該使用這個功能」。
有趣的 - 一種「軟性信息隱藏」的形式。 – 2010-02-06 00:31:40
當你考慮Visual有一個內部的GetDrawing方法,並且VTH.GetDrawing只是直接調用它時,會非常好奇。 – itowlson 2010-02-05 02:01:32
這個問題與Silverlight無關。 – AnthonyWJones 2010-02-05 18:39:11
嗯,你是對的 - 假設它沒有檢查就是一樣的... – 2010-02-06 07:34:01