Шпаргалка по ZedGraph. Как изменять фон текстовых объектов

По умолчанию текстовые объекты создаются с белым фоном, что может мешать, если текст заслоняет собой график или другой объект. Этот пример показывает как изменять фон у текстовых объектов. Для изменения фона служит свойство Fill (имя класса свойства - Fill) класса FontSpec, до которого, в свою очередь, можно добраться с помощью свойства FontSpec класса TextObj.

Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.

Проект в примере - TextBackground

public partial class Form1 : Form
{
    public Form1 ()
    {
        InitializeComponent ();

        DrawGraph ();
    }

    private void DrawGraph ()
    {
        GraphPane pane = zedGraph.GraphPane;

        DrawCurve (pane);


        // *** Выведем текст с фоном по умолчанию (с белым фоном) ***
        TextObj text1 = new TextObj ("Text 1", 0.0, 0.9);

        // Отключим рамку вокруг текста
        text1.FontSpec.Border.IsVisible = false;


        // *** Выведем текст с прозрачным фоном ***
        TextObj text2 = new TextObj ("Text 2", 0.0, 0.8);

        // Отключим рамку вокруг текста
        text2.FontSpec.Border.IsVisible = false;

        // Используем конструктор класса Fill без параметров,
        // чтобы фон был прозрачным
        text2.FontSpec.Fill = new Fill ();


        // *** Выведем текст с монотонным фоном ***
        TextObj text3 = new TextObj ("Text 3", 0.0, 0.7);

        // Отключим рамку вокруг текста
        text3.FontSpec.Border.IsVisible = false;

        // Конструктору класса Fill передаем экземпляр класса Color
        text3.FontSpec.Fill = new Fill (Color.Yellow);


        // *** Выведем текст с градиентным фоном ***
        TextObj text4 = new TextObj ("Text 4", 0.0, 0.6);

        // Отключим рамку вокруг текста
        text4.FontSpec.Border.IsVisible = false;

        // Конструктору класса Fill передаем экземпляр класса Color
        text4.FontSpec.Fill = new Fill (Color.Yellow, Color.Red);


        // Добавим текстовые объекты в список отображаемых объектов
        pane.GraphObjList.Add (text1);
        pane.GraphObjList.Add (text2);
        pane.GraphObjList.Add (text3);
        pane.GraphObjList.Add (text4);

        // Обновляем график
        zedGraph.Invalidate ();
    }

    private double f (double x)
    {
        if (x == 0)
        {
            return 1;
        }

        return Math.Sin (x) / x;
    }

    private void DrawCurve (GraphPane pane)
    {
        pane.CurveList.Clear ();

        PointPairList list = new PointPairList ();

        double xmin = -50;
        double xmax = 50;

        // Заполняем список точек
        for (double x = xmin; x <= xmax; x += 0.01)
        {
            list.Add (x, f (x));
        }
        LineItem myCurve = pane.AddCurve ("Sinc", list, Color.Blue, SymbolType.None);

        zedGraph.AxisChange ();
    }
}

Вернуться к остальным примерам

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
4 stars

Рейтинг 4.0/5. Всего 1 голос(а, ов)




Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 203