我在使用LiveCharts时遇到了一个问题:PieMenu。
我在一个资源文件中为PieChart和PieSeries定义了一个样式,这样我的所有饼图看起来都一样。
在UserControl中,我使用资源字典中的资源文件,并将其添加到资源中,然后创建了两个饼图:
<Border HorizontalAlignment="Stretch"
Background="{StaticResource MenuBackgroundScb2}"
BorderThickness="2" BorderBrush="{StaticResource WidgetBorderScb}"
Margin="0 0 0 20">
<StackPanel HorizontalAlignment="Stretch" >
<Label Content="Montant des offres selon leurs états" Style="{StaticResource TitleLabel}"/>
<lc:PieChart Series="{Binding Path=AmountOfferByStatusSeriesCollection}"/>
</StackPanel>
</Border>
<Border HorizontalAlignment="Stretch"
Background="{StaticResource MenuBackgroundScb2}"
BorderThickness="2" BorderBrush="{StaticResource WidgetBorderScb}">
<StackPanel HorizontalAlignment="Stretch" >
<Label Content="Nombre d'offres selon leurs états" Style="{StaticResource TitleLabel}"/>
<lc:PieChart Series="{Binding Path=NbOfferByStatusSeriesCollection}" />
</StackPanel>
</Border>
第一个图表饼图看起来不错,但第二个有一个问题:图例没有显示,鼠标悬停会导致应用程序崩溃。
这个错误出现了,因为我在一个单独的资源文件中声明了样式,而不是在PieChart的资源中,所以我知道我对NbOfferByStatusSeriesCollection系列没有问题。
此外,我还有第三个饼图,它显示在另一个页面中,与前两个饼图不同时显示,这一个效果很好。
我做错了什么??
这是资源文件的摘录。
<Style TargetType="lc:PieChart">
<Setter Property="Height" Value="140"/>
<Setter Property="InnerRadius" Value="25"/>
<Setter Property="SeriesColors" Value="{StaticResource GraphColors}" />
<Setter Property="Foreground" Value="{StaticResource LightForegroundScb}"/>
<Setter Property="LegendLocation" Value="Right" />
<Setter Property="ChartLegend">
<Setter.Value>
<lc:DefaultLegend BulletSize="20"/>
</Setter.Value>
</Setter>
<Setter Property="DataTooltip">
<Setter.Value>
<lc:DefaultTooltip SelectionMode="OnlySender"
Foreground="{StaticResource LightForegroundScb}"
Background="{StaticResource MenuBackgroundScb2}"
BorderThickness="2"
BorderBrush="{StaticResource MenuBackgroundScb}"
BulletSize="20" />
</Setter.Value>
</Setter>
</Style>
<Style TargetType="lc:PieSeries">
<Setter Property="Stroke" Value="{StaticResource MenuBackgroundScb2}"/>
<Setter Property="StrokeThickness" Value="3"/>
</Style>
这是调用堆栈: