1

StackedBarSeriesSilverlight 4 チャート (最新リリース)があります。

カスタム ツールチップのDataPointStyle呼び出しを作成しました。MyDataPointStyleこれだけで、さまざまなバーに使用される標準パレットが壊れます。

David Anson のブログで説明されているように、チャートにカスタム パレットを適用しました。ただしDataPointStyle、オブジェクトのセットがある場合、SeriesDefinitionこのパレットは使用されません。

何が欠けているのかわかりませんが、David は具体的に次のように言っています。

... DynamicResource (現在は WPF プラットフォームでのみサポートされています) を使用して、ユーザーがデフォルト/カスタム パレットの色を誤って失うことなく DataPointStyle をカスタマイズできるようにします。(注: 非常に人気のあるリクエストです!)

残念ながら、うっかりこれらの色を失ってしまいました。なぜだかわかりません。

<chartingToolkit:Chart Title="SKU Sales" x:Name="chartItemSales" Grid.Column="1">

    <chartingToolkit:Chart.Palette>
        <dataviz:ResourceDictionaryCollection>
            <ResourceDictionary>
                <Style x:Key="DataPointStyle" TargetType="Control">
                    <Setter Property="Background" Value="Blue"/>
                </Style>
            </ResourceDictionary>
            <ResourceDictionary>
                <Style x:Key="DataPointStyle" TargetType="Control">
                    <Setter Property="Background" Value="Green"/>
                </Style>
            </ResourceDictionary>
            <ResourceDictionary>
                <Style x:Key="DataPointStyle" TargetType="Control">
                    <Setter Property="Background" Value="Red"/>
                </Style>
            </ResourceDictionary>
        </dataviz:ResourceDictionaryCollection>
    </chartingToolkit:Chart.Palette>

    <chartingToolkit:Chart.Series>
                                            
        <chartingToolkit:StackedBarSeries>

            <chartingToolkit:SeriesDefinition
                        IndependentValueBinding="{Binding SKU}" 
                        DependentValueBinding="{Binding Qty}" 
                        DataPointStyle="{StaticResource MyDataPointStyle}"
                        Title="Regular"/>

            <chartingToolkit:SeriesDefinition
                        IndependentValueBinding="{Binding SKU}" 
                        DependentValueBinding="{Binding Qty}" 
                        DataPointStyle="{StaticResource MyDataPointStyle}"
                        Title="FSP Orders"/>

            <chartingToolkit:StackedBarSeries.IndependentAxis>
                <chartingToolkit:CategoryAxis Title="SKU" Orientation="Y" FontStyle="Italic" AxisLabelStyle="{StaticResource LeftAxisStyle}"/>
            </chartingToolkit:StackedBarSeries.IndependentAxis>

                <chartingToolkit:StackedBarSeries.DependentAxis>
                <chartingToolkit:LinearAxis Orientation="X" ExtendRangeToOrigin="True" Minimum="0" ShowGridLines="True" />
            </chartingToolkit:StackedBarSeries.DependentAxis>

        </chartingToolkit:StackedBarSeries >
    </chartingToolkit:Chart.Series>

</chartingToolkit:Chart>
4

1 に答える 1

4

手がかりは、Davidから投稿した「現在WPFプラットフォームでのみサポートされている」、つまりSilverlightではサポートされていない引用にあります。

独自のスタイルを提供するとすぐにDataPointStyle、パレットによって提供されたスタイル(デフォルトのスタイルまたはカスタムパレットのいずれか)を置き換えます。

編集

これがその方法です。シリーズまたは定義のプロパティにスタイルを提供する代わりに、DataPointStyleそれをパレットに任せます。ただし、パレットのスタイルは、StyleオブジェクトのBasedOnプロパティを使用して重複を回避できます。それで:-

<UserControl.Resources>
   <Style x:Key="MyDataPointStyle" TargetType="DataPoint">
     <!-- Set up the general style for the points may even include a Template -->
   </Style>

..。

<chartingToolkit:Chart.Palette>      
    <dataviz:ResourceDictionaryCollection>      
        <ResourceDictionary>      
            <Style x:Key="DataPointStyle" TargetType="chartingToolkit:BarDataPoint" BasedOn="{StaticResource MyDataPointStyle}" >      
                <Setter Property="Background" Value="Blue"/>      
            </Style>      
        </ResourceDictionary>      
        <ResourceDictionary>      
            <Style x:Key="DataPointStyle" TargetType="chartingToolkit:BarDataPoint" BasedOn="{StaticResource MyDataPointStyle}">      
                <Setter Property="Background" Value="Green"/>      
            </Style>      
        </ResourceDictionary>      
        <ResourceDictionary>      
            <Style x:Key="DataPointStyle" TargetType="chartingToolkit:BarDataPoint" BasedOn="{StaticResource MyDataPointStyle}">      
                <Setter Property="Background" Value="Red"/>      
            </Style>
        </ResourceDictionary>          
    </dataviz:ResourceDictionaryCollection>          
</chartingToolkit:Chart.Palette>          

<chartingToolkit:Chart.Series>          

    <chartingToolkit:StackedBarSeries>          

        <chartingToolkit:SeriesDefinition          
                    IndependentValueBinding="{Binding SKU}"           
                    DependentValueBinding="{Binding Qty}"           
                    Title="Regular"/>

..。

于 2010-05-31T11:07:18.820 に答える