我正在尝试在以下链接http://research.microsoft.com/en-us/um/cambridge/projects/ddd/d3isdk/
中重新创建Miscellanous下的“Line Graph legend”示例我使用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 :(得分:2)
从D3开始时我也遭遇了同样的困惑。据我所知,它最初是为WPF开发的,然后用作跳板在Silverlight中构建相同的功能。因此,您在网上看到的示例有一些差异和一些您在WPF版本中看不到的其他功能。
首先,WPF版本中不存在“Chart”类。您更有可能在图表中使用“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。 (稳定&gt; v0.3.1&gt; src&gt;样品,找到您要检查的样品。)
我看不到那里有你在图例中有一个复选框的确切示例,但是一旦你开始访问正确的类,你的方法似乎应该有效。
另外,我假设您使用以下行,而不是Silverlight,以引用该库:
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
答案 1 :(得分:0)
您将在这里使用示例: https://github.com/Microsoft/InteractiveDataDisplay.WPF/tree/master/samples/LineGraphSample
交互式数据显示是D3的延续(无论如何,其中之一)。但是某些C#可能有所不同。