ASP.NET 4.0 Web フォームでレポート用の単純なグラフを設計しています。ある程度の透明度を使用すると、チャートがフォントを台無しにしているように見えるという問題に直面しています。以下の例を考えてみましょう。
<asp:Chart
ID="chart" runat="server"
Height="300px" Width="300px"
BackColor="White"
ImageStorageMode="UseHttpHandler">
<Titles>
<asp:Title Name="title" Text="Results" />
</Titles>
<Legends>
<asp:Legend
Name="Default"
Docking="Top"
LegendStyle="Column"
BackColor="Transparent"
Title="Legend"
Font="Segoe UI, 10.25pt, style=Regular"
TitleFont="Segoe UI, 12pt, style=Regular">
</asp:Legend>
</Legends>
<Series>
<asp:Series
Name="Default"
ChartType="Pie"
CustomProperties="PieDrawingStyle=Concave,PieLabelStyle=Disabled"
IsValueShownAsLabel="False">
<Points>
<asp:DataPoint Label="Argentina" YValues="5" />
<asp:DataPoint Label="Italy" YValues="8" />
<asp:DataPoint Label="Portugal" YValues="12" />
<asp:DataPoint Label="China" YValues="45" />
<asp:DataPoint Label="United States" YValues="32" />
</Points>
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="area" BackColor="Transparent" />
</ChartAreas>
</asp:Chart>
デモンストレーションのために、この例ではデータ ポイントをハードコーディングしました。コード ビハインドは必要ありません。私のアプリケーションには、適切に構成appSettings
されたsystem.webServer/modules
エントリがあります。凡例のフォント スタイルが明示的に に設定されていることに注意してくださいRegular
。
これにより、次のチャートが生成されます。
Ok。さて、問題です。グラデーションの背景を持つ HTML 領域の上にチャートを配置する必要があります。グラデーションの中断を避けるために、チャートの背景領域を透明にしたいと考えています。4 行目を から に変更BackColor="White"
するとBackColor="Transparent"
、すべてのフォントが太字になり、アンチエイリアスが失われます。以下を参照してください (チャートは灰色で配置されていますdiv
):
これはチャート コントロールの制限ですか? 背景が透明で、見栄えの良いフォントを使用してチャートを作成できますか? それとも、他のオプションを検討する必要がありますか?