2010-11-19 86 views
3

我需要在我使用的Silverlight圖表上啓用縮放功能 - 目前這是Silverlight Toolkit。據我瞭解SL Toolkit圖表不支持縮放,但我正在考慮實現此功能。到目前爲止,我還沒有成功:將ScaleTransforms應用到Series元素不能按預期工作。放大Silverlight工具包圖表?

任何人都可以提供示例代碼實現縮放Silverlight工具包?

+0

您是否嘗試將'ScaleTransform'應用於整個圖表? – Stephan 2010-11-19 17:12:32

+0

是的:這個系列被放大了,但是掛在了圖表上:我想我會需要應用剪切和平移變換來將它移動到正確的位置。此外,效果更像放大鏡而不是縮放。 – JohnC 2010-11-22 09:19:25

+2

我剛剛在我的博客中爲此寫了一個解決方案: http://geoffwebbercross.blogspot.com/2011/02/silverlight-4-toolkit-zoom-and-pan.html – 2011-02-09 17:44:31

回答

6

我以前看着實現縮放的Silverlight工具包圖表,但是失敗,因爲(可能)有以下原因:

  • Silverlight工具包圖表似乎並沒有被設計成能擴大以便放大。沒有任何鉤子可以輕鬆地攻擊某些縮放邏輯,如果要在它們上創建縮放,則必須深入研究。
  • 實現縮放的最簡單方法是對元素使用ScaleTransform和RenderTransform。對於Silverlight Toolkit,您希望將其應用於該系列。然而只是計算正確的ScaleTransform和OffsetTransform很難不夠
  • 縮放時,你不希望所有東西都按比例縮放。如果您在具有點的線條系列上放大4倍,您不希望線條變厚4倍,點數變大4倍。這意味着,即使您已經正確應用了ScaleTransforms和RenderTransforms,您所得到的只是一個放大鏡,但仍然很不理想。

幾個小時後,我放棄了將這種支持添加到SL工具包圖表,而是尋找其他支持縮放的組件,並且有一個體面的API來處理它。這是我發現的組件(雖然我敢肯定還有更多):

總結起來,我覺得你與已經有了變焦實施的組件去它的最簡單的方法 - 從我的經驗,將採取投資的很多添加適當的縮放+搖攝到Silverlight工具包圖表。

+0

我試過ScaleTransform,但遇到了你提到的問題。我會研究你所提及的組件必須提供什麼,謝謝! – JohnC 2010-11-22 09:20:36

0

添加到約Telerik的蓋爾蓋伊Orozy評論:

您可以輕鬆地用下面的XAML添加縮放功能。

<charting:ChartArea.ZoomScrollSettingsX> 
    <charting:ZoomScrollSettings ScrollMode="ScrollAndZoom" MinZoomRange="0.005"/> 
</charting:ChartArea.ZoomScrollSettingsX> 

您可以點擊這裏檢查出demo和源代碼也可以同樣的標籤。