1

http://research.microsoft.com/en-us/um/cambridge/projects/ddd/d3isdk/のその他のリンクで、「折れ線グラフの凡例」と呼ばれる例を再作成しようとしています。

Silverligth ではなく WPF を使用しており、次の 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>

ありがとう

4

2 に答える 2

2

D3を始めたときも同じ混乱に見舞われました。私の理解では、最初は WPF 用に開発され、その後、Silverlight で同じ機能を構築するための出発点として使用されました。したがって、オンラインで表示される例には、WPF バージョンでは表示されないいくつかの違いといくつかの追加機能があります。

1つには、クラス「Chart」がWPFバージョンに存在しません。グラフには「ChartPlotter」を使用する可能性が高くなります。「LegendContent」と「LegendItemsPanel」の代わりに「Legend」と「LineLegendItem」でも同じです。これはあなたが行こうとしている場所かもしれません:

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

私はこれらのクラスを個人的に使用したことがないので、これが Silverlight の例と一致するかどうか直接の知識はありません。

公式の D3 ページ でダウンロードした例を参照することを強くお勧めします。私は最近、彼らのサンプルの背後にあるコードを見ることができることを知りました。これは厄介なことにダウンロードには含まれていませ。(Stable>v0.3.1>src>Samples、調べたいサンプルを見つけてください)。

凡例にチェックボックスがある正確な例はありませんが、適切なクラスへのアクセスを開始すると、メソッドが機能するようです。

また、ライブラリを参照するために、Silverlight の行ではなく、次の行を使用していると思います。

xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
于 2013-04-30T21:31:15.170 に答える