2013-04-30 84 views
1

我試圖重新被稱爲「圖線傳說」中的以下鏈接計算其它下的示例,http://research.microsoft.com/en-us/um/cambridge/projects/ddd/d3isdk/動態數據顯示圖表

我使用WPF不silverligth,並有越來越問題以下XAML部分的參考。

<d3:Chart.LegendContent> 
    <d3:LegendItemsPanel> 
     <d3:LegendItemsPanel.Resources> 
      <DataTemplate x:Key="Microsoft.Research.DynamicDataDisplay.LineGraph"> 
       <StackPanel Orientation="Horizontal"> 
        <CheckBox IsChecked="{Binding Path=Visibility, Converter={StaticResource VisibilityToCheckedConverter}, Mode=TwoWay}"/> 
        <Line Width="15" Height="15" X1="0" Y1="0" X2="15" Y2="15" Stroke="{Binding Path=Stroke}" StrokeThickness="2"/> 
        <TextBlock Margin="5,0,0,0" Text="{Binding Path=Description}"/> 
       </StackPanel> 
      </DataTemplate> 
     </d3:LegendItemsPanel.Resources> 
    </d3:LegendItemsPanel> 
</d3:Chart.LegendContent> 

感謝

+0

是否可以使用Silverlight控件在WPF桌面應用程序? – guilhermecgs 2013-04-30 17:41:06

回答

2

與D3開始時,我遭遇了同樣的困惑。據我所知,它最初是爲WPF開發的,然後用作在Silverlight中構建相同功能的跳板。因此,您在網上看到的示例有一些差異和一些其他功能,您在WPF版本中不會看到這些功能。

其中之一,WPF版本中不存在類「圖表」。您更可能使用「ChartPlotter」作爲圖表。與「Legend」和「LineLegendItem」相同,而不是「LegendContent」和「LegendItemsPanel」。這可能是在那裏你試圖去:

<d3:ChartPlotter> 
    <d3:Legend> 
     <d3:LineLegendItem> 
      <d3:LineLegendItem.Resources> 
       <DataTemplate StackPanel with checkbox> 
      </d3:LineLegendItem.Resources> 
     </d3:LineLegendItem> 
    </d3:Legend> 
</d3:ChartPlotter> 

我沒有親自使用這些類,所以我沒有這個Silverlight的例子相匹配的第一手資料,但我希望這是足以讓你離開地面並進行試驗。

我強烈建議從下載on the official D3 page看看例子。我最近發現,你可以查看他們的樣本背後的代碼,這是煩惱地不包括在下載,online here。 (Stable> v0.3.1> src> Samples,找到您想要檢查的示例)。

我沒有看到有任何確切的例子,在圖例中有一個複選框,但是您的方法似乎應該在您開始訪問正確的類時運行。

另外,我假設你使用以下行,而不是Silverlight的一個,引用庫:

xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0" 
+2

謝謝,@Ross。我在這裏找到了解決方案:http://social.msdn.microsoft.com/Forums/en-US/wpfzhchs/thread/8b8dbcd5-e1f9-450e-b146-87d7acbee72b 它是中文,但你可以使用谷歌翻譯。工作正常! – guilhermecgs 2013-05-02 16:30:20