我已经创建了一个 ASPx 饼图,并且正在努力获得正确的颜色。需要注意的重要一点是,我根本无法控制后端代码(第 3 方),因此仅限于 XML 修改(Microsoft Dynamics CRM)。
问题是我想使用颜色来指示返回的记录的某种状态(例如,一本书在图书馆中过期的天数)。我想要这样的情况:
迟到 0-5 天(= 代码 0)----> 绿色
延迟 5-10 天(= 代码 1)----> 黄色
迟到 10-15 天(= 代码 2)----> 橙色
>15 days late (= code 3) ----> red
我从服务器收到的数据例如:
代码(迟到的天数) 计数(书籍) 0 4 2 5 3 14
当我使用PaletteCustomColors属性并指定如下颜色时,此方法有效:
<Chart Palette="None" PaletteCustomColors="149,189,66; 255,255,0; 255,136,35; 197,56,52; 117,82,160; 55,118,193; 168,203,104; 142,116,178; 93,186,215; 255,155,83">
<Series>
<Series ShadowOffset="0" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PieLabelStyle=Inside, PieDrawingStyle=Default" ChartType="pie">
<SmartLabelStyle Enabled="True" />
</Series>
</Series>
<ChartAreas>
<ChartArea>
<Area3DStyle Enable3D="true" />
</ChartArea>
</ChartAreas>
<Legends>
<Legend Alignment="Center" LegendStyle="Table" Docking="right" IsEquallySpacedItems="True" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59, 59, 59" />
</Legends>
<Titles>
<Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="0, 0, 0"></Title>
</Titles>
</Chart>
但是,当某个代码不存在时,这不起作用。在这种情况下,颜色将是:
代码 0 -> 绿色,代码 2 -> 黄色,代码 3 -> 有机
因此,由于没有返回代码 1 结果(因为此代码的计数为 0,因此应用程序没有返回结果),代码 2 采用第一个剩余的颜色,代码 3 采用之后的颜色,...这不是我的想要,我希望将颜色绑定到它们的 Code 属性。
我已经尝试为此使用 DataPoints(请参见下面的代码),但无济于事......有没有人有任何体面的解决方案?
<Chart>
<Series>
<Series ShadowOffset="0" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59" CustomProperties="PieLabelStyle=Inside, PieDrawingStyle=Default" ChartType="pie">
<SmartLabelStyle Enabled="True" />
<Points>
<DataPoint XValue="0" Color="Green" />
<DataPoint XValue="1" Color="Yellow" />
<DataPoint XValue="2" Color="Orange" />
<DataPoint XValue="3" Color="Red" />
<DataPoint XValue="4" Color="Purple" />
</Points>
</Series>
</Series>
<ChartAreas>
<ChartArea>
<Area3DStyle Enable3D="true" />
</ChartArea>
</ChartAreas>
<Legends>
<Legend Alignment="Center" LegendStyle="Table" Docking="right" IsEquallySpacedItems="True" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59, 59, 59" />
</Legends>
<Titles>
<Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="0, 0, 0"></Title>
</Titles>
</Chart>
谢谢!