我想實現一個相當複雜的CurveEditor有支持像通常的要求:戰略實施與XAML複雜的曲線編輯器/ WPF
- 自由伸縮和可移動軸每曲線
- 不同的插補方式點(線性,三次,樣條)
- 切線(加入和碎)
- 選擇一個或幾個點進行編輯(移動,縮放,刪除),通過圍欄或點擊
- 僅顯示一個處理第二選定曲線亮點指出
我不想操縱實際WPF曲線,但與鍵/值/切線套現有模型和樣品從我們的實現曲線的精確形狀。
我已經收集了一些實現自定義用戶控件和模板的經驗。但我想確保,我不會錯過任何明顯的解決方案。我計劃讓這個一般XAML樹:
- CurveEditor - 窗口保存所有內容
- MainThumb:允許在拖動和縮放編輯器範圍
- X軸:用戶控件撕心裂肺一些在左側的比例尺
- YAxis:UserControl在底部顯示一些比例 條
- 曲線:帆布保持曲線
- 曲線:用戶控件用於單個曲線
- CurveName - 曲線的標籤
- CurveLine - DrawingVisual,將呈現實際曲線通過對樣條函數的內部實現進行採樣。
- CurveEditPoints - 帆布保存所有編輯點
- CurveEditPoint - 用戶控件的一個編輯點
- LeftTangent - 用戶控件左切處理
- LeftTangentThumb - 用於修改手柄
- RightTangent - 用戶控件的右切線處理
- RightTangentThumb - 修改手柄
- LeftTangent - 用戶控件左切處理
- CurvePointCenter - 實際點的可視化,選擇狀態和插值類型。
- CurvePointThumb - 拇指選擇和周圍
- CurveEditPoint - 用戶控件的一個編輯點
- 曲線:用戶控件用於單個曲線
我知道拖動點,這是一個相當複雜的問題,我不要求實際執行。我感興趣的是以下幾個問題:
- 你能推薦任何教程或書籍,可以幫助我(我已經得到了畫報WPF,WPF控件開發如虎添翼,和其他幾個)
- 應該微量元素像切線是單獨的用戶控件?
- 什麼容器最適合託管個人「曲線」,「EditPoints」和「切線」。現在,我使用Canvas和Canvas.SetLeft/SetTop來定位孩子,但是感覺「奇怪」。
- 我應該使用「形狀」像Path或DrawingVisual-Classes來實現實際表示。路徑很簡單,但我關心的是數百個CurvePoints的性能。
- 我應該使用變換來旋轉切線,還是可以在文件後面的代碼中做一些三角測量運算?
- 這個結構是否有意義,還是你提出了一個完全不同的方法?
我不能說技術細節,但只是基於你提供的細節 - 以及你已經給出的想法 - 我想說你應該開始,看看你最終結束了。你可以開始「真正的」,並在精神上爲重做做好準備,或者做一些概念證明/尖峯來鞏固「承諾」之前的一些細節。 – 2011-03-14 01:30:03
謝謝。我知道,學習WPF的唯一方法就是通過做。但我已經瞭解到,與WPF相比,有更多方法可以做到「錯誤」,而不是更小,更快,更易維護的預期解決方案,但是(這是我的問題的原因)需要我從來沒有聽說過的WPF功能。 所以我已經想通了,將曲線作爲ListBox和KeyPoints作爲具有特殊控制模板的Items實現可能會更好。這聽起來像是會爲我處理諸如選擇和虛擬化之類的事情。 – pixtur 2011-03-14 07:56:25