首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用自定义工具提示创建StackedBarSeries而不丢失标准颜色

如何使用自定义工具提示创建StackedBarSeries而不丢失标准颜色
EN

Stack Overflow用户
提问于 2010-05-31 04:22:20
回答 1查看 3.2K关注 0票数 1

我在Silverlight 4图表中有一个StackedBarSeries (最新版本)。

我为自定义工具提示创建了一个名为DataPointStyleMyDataPointStyle。这本身就破坏了用于不同条形的标准调色板。

我已经应用了一个自定义调色板--正如大卫·安森的博客中所描述的那样。但是,当我为我的DataPointStyle对象设置了SeriesDefinition时,它不会使用这个调色板。

我不知道我错过了什么--但大卫特别说:

..。它允许使用DynamicResource (目前只有WPF平台支持)使用户可以定制自己的DataPointStyle,而不会在不经意间失去默认/自定义调色板颜色。(注:一个非常受欢迎的请求!)

不幸的是,我无意中失去了这些颜色-我不明白为什么?

<图表工具包:图表Title="SKU销售“x:Name="chartItemSales”Grid.Column="1">“

代码语言:javascript
复制
    <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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-31 11:07:18

线索是在引用你从大卫“目前只支持WPF平台”,即,它不支持银光。

一旦提供了自己的DataPointStyle,就会替换调色板(默认的或自定义的调色板)提供的任何样式。

编辑

这是怎么做的。与其向系列或定义的DataPointStyle属性提供样式,不如将其留给托盘。但是,调色板中的样式可以使用Style对象的BasedOn属性来避免重复。所以:-

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

..。

代码语言:javascript
复制
<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"/>

..。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2941349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档