Как установить BackImage ChartArea во время выполнения? - PullRequest
5 голосов
/ 26 августа 2011

Кто-нибудь знает, почему ChartArea.BackImage является свойством типа string?Разве не имело бы больше смысла, чтобы это было свойство типа Image?

Или, иначе говоря, как я могу установить фоновое изображение ChartArea для изображения, сгенерированного во время выполнения (например, из объектов GraphicPath)?

Предложения приветствуются, спасибо.

Ответы [ 3 ]

5 голосов
/ 26 августа 2011

Как указано в MSDN: Свойство ChartArea.BackImage . Свойство BackImage является строковым значением, представляющим URL-адрес файла изображения.

Таким образом, чтобы предоставить изображение, созданное динамически, вам нужно будет создать свое изображение (для этого обратитесь к следующей статье об использовании объектов из пространства имен System.Drawing): Генерация динамического изображения с ASP.Net

Что вы можете либо:

1 - Сохранить в файловой системе.

Или

2 - Настройте HttpHandler для его динамического обслуживания.

См .: Использование HttpHandlers для обслуживания файлов изображений

В любом случае вам потребуется указать путь к изображению следующим образом:

Chart.ChartAreas[0].BackImage = imagePath;

Надеюсь, это поможет.

3 голосов
/ 02 июля 2018

Решение с использованием NamedImage

var chartBackImage = new Bitmap(1,1); //some bmp
chart1.Images.Add(new NamedImage("GiveSomeName", chartBackImage));
chart1.Areas[0].BackImage = Images[0].Name;
chart1.Areas[0].BackImageWrapMode = ChartImageWrapMode.Scaled; //extra
1 голос
/ 27 августа 2016

Также установите диаграмму и chartarea BackColor = "Transparent", чтобы изображение показывалось

<asp:Chart ID="Chart1" runat="server" BackColor="Transparent" >
    <Titles>
        <asp:Title Text="Bubble Chart"></asp:Title>
    </Titles>
    <ChartAreas>
        <asp:ChartArea Name="ChartArea1" BackColor="Transparent"></asp:ChartArea>
    </ChartAreas>
    <Legends>
        <asp:Legend LegendStyle="Table" Docking="Bottom" IsDockedInsideChartArea="false" Name="Legend1"></asp:Legend>
    </Legends>
</asp:Chart>
...