将PhoneAccentBrush的不透明度添加到Silverlight工具箱饼图中

时间:2011-01-02 14:25:57

标签: silverlight windows-phone-7

我正在使用Windows Phone应用程序,我正在使用饼图 - 我对Silverlight控件工具箱来说相对较新。

我想让我的饼图使用PhoneAccentBrush的不同不透明度作为其颜色托盘。 (即如果强调颜色是绿色,那么我使用绿色,然后使用0.8,0.6,0.4,0.2颜色的不透明度作为我的饼图托盘)

我尝试了一些事情,但没有一个能够奏效 - 有没有人完成了这个,如果是这样的话?

提前谢谢 道格

2 个答案:

答案 0 :(得分:1)

你尝试了什么,为什么你认为它不起作用?

我对WP7 sdk不太熟悉,但几周后我确实使用Silverlight工具包饼图做了一些工作,定义托盘颜色是这样的:

     <visualizationToolkit:ResourceDictionaryCollection x:Key="ChartColorCollection">
        <!-- PIECHART DATA POINT COLORS -->
        <ResourceDictionary>
            <PhoneAccentBrush x:Key="AccentBrush />
            <Style x:Key="DataPointStyle" BasedOn="{StaticResource PieDataPointStyle1}" TargetType="chartingToolkit:PieDataPoint">
                <Setter Property="Background" Value="{StaticResource AccentBrush}"/>
            </Style>
        </ResourceDictionary>

        <ResourceDictionary>
            <PhoneAccentBrush x:Key="AccentBrush />
            <Style x:Key="DataPointStyle" BasedOn="{StaticResource PieDataPointStyle1}" TargetType="chartingToolkit:PieDataPoint">
                <Setter Property="Background" Value="{StaticResource AccentBrush}"/>
            </Style>
        </ResourceDictionary>

        <ResourceDictionary>
            <PhoneAccentBrush x:Key="AccentBrush />
            <Style x:Key="DataPointStyle" BasedOn="{StaticResource PieDataPointStyle1}" TargetType="chartingToolkit:PieDataPoint">
                <Setter Property="Background" Value="{StaticResource AccentBrush}"/>
            </Style>
        </ResourceDictionary>

        <!-- etc -->

我做了类似于你用一种颜色的不同色调描述的东西(因此每个颜色托盘条目将有一个单独的ResourceDictionary)。在我的实现中,我使用的是RadialGradientBrush,但概念应该是相同的。

答案 1 :(得分:1)

我拿了我所拥有的(它与非常类似于rhooligan的帖子)并用一些固体刷子按摩它,我添加到app.xaml:

在xaml视图页面中:

 <charting:Chart x:Name="chartMyChart" BorderBrush="{x:Null}" Foreground="{x:Null}" Style="{StaticResource ChartStyle1}" LegendStyle="{StaticResource PieLegendStyle1}">
                    <charting:Chart.Palette>
                        <visualizationToolkit:ResourceDictionaryCollection>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="{StaticResource PieChartColour1}"  />
                                    <Setter Property="BorderBrush" Value="{StaticResource PieChartColour1}" />
                                </Style>
                            </ResourceDictionary>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="{StaticResource PieChartColour2}" />
                                    <Setter Property="BorderBrush" Value="{StaticResource PieChartColour2}" />
                                </Style>
                            </ResourceDictionary>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="{StaticResource PieChartColour3}"/>
                                    <Setter Property="BorderBrush" Value="{StaticResource PieChartColour3}" />
                                </Style>
                            </ResourceDictionary>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="{StaticResource PieChartColour4}"/>
                                    <Setter Property="BorderBrush" Value="{StaticResource PieChartColour4}" />
                                </Style>
                            </ResourceDictionary>
                            <ResourceDictionary>
                                <Style x:Key="DataPointStyle" TargetType="Control">
                                    <Setter Property="Background" Value="{StaticResource PieChartColour5}"/>
                                    <Setter Property="BorderBrush" Value="{StaticResource PieChartColour5}" />
                                </Style>
                            </ResourceDictionary>
                        </visualizationToolkit:ResourceDictionaryCollection>
                    </charting:Chart.Palette>
                    <charting:PieSeries 
                        ItemsSource="{Binding}" 
                        DependentValuePath="NumberOfReferrals" 
                        IndependentValuePath="Sources" 
                        Background="{StaticResource PhoneBackgroundBrush}" 
                        Style="{StaticResource PieSeriesStyle1}" 
                        LegendItemStyle="{StaticResource LegendItemStyleShown}"
                        Margin="0" 
                         />
                </charting:Chart>

然后在我的app.xaml:

    <SolidColorBrush x:Key="PieChartColour1" Opacity="1" Color="{StaticResource PhoneAccentColor}" />
    <SolidColorBrush x:Key="PieChartColour2" Opacity="0.8" Color="{StaticResource PhoneAccentColor}" />
    <SolidColorBrush x:Key="PieChartColour3" Opacity="0.6"  Color="{StaticResource PhoneAccentColor}" />
    <SolidColorBrush x:Key="PieChartColour4" Opacity="0.4"  Color="{StaticResource PhoneAccentColor}" />
    <SolidColorBrush x:Key="PieChartColour5" Opacity="0.2"  Color="{StaticResource PhoneAccentColor}" />

YAY!