2

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):

背景が透明なグラフ

これはチャート コントロールの制限ですか? 背景が透明で、見栄えの良いフォントを使用してチャートを作成できますか? それとも、他のオプションを検討する必要がありますか?

4

1 に答える 1