Page 1 of 1

Using color palettes

Posted: Fri Feb 05, 2010 11:29 pm
by 14045174
Ok, you have introduces this cool feature "Color Palette". But using it is a pain!
First, it is a global setting (meaning I cannot have 2 graphs on my screen and select different color palettes for them!) So, when I switch between the graphs I have to manually reselect the palette for the graph. That would be fine, but what to do with a graph which was saved into a template and now I am restoring it from the template? The template file has no idea, what color palette was used!
Another problem. Ok, I have selected the color palette I like. But as soon as in my program I hit a line "new TChart()" or try to read a template file or create a new series for my graph for some odd reason you guys decided you know better what color palette I must use! It is more than just strange. Personally, I hate the one you set up as default so I constantly have to reselect my palette after each time I had touched the graph.

Ideally, I'd like to see it not as a global variable (we all know it is a bad practice to have them to begin with), but rather as a property on my TChart object and yes, I'd like it to be serialized. If I have 2 graphs (or more) than color palette from one of them has no effect on the others. And in no circumstances no one but me can change this selection (no matter what operation on the graph or its parts I do).

Re: Using color palettes

Posted: Mon Feb 08, 2010 1:16 pm
by 10050769
Hello UserLs,
First, it is a global setting (meaning I cannot have 2 graphs on my screen and select different color palettes for them!) So, when I switch between the graphs I have to manually reselect the palette for the graph. That would be fine, but what to do with a graph which was saved into a template and now I am restoring it from the template? The template file has no idea, what color palette was used!
I can reproduce your problem, and I have added in Bug report list with number [TF02014673]. We will try to fix it for next versions of TeeChart .NET.
Another problem. Ok, I have selected the color palette I like. But as soon as in my program I hit a line "new TChart()" or try to read a template file or create a new series for my graph for some odd reason you guys decided you know better what color palette I must use! It is more than just strange. Personally, I hate the one you set up as default so I constantly have to reselect my palette after each time I had touched the graph.

Ideally, I'd like to see it not as a global variable (we all know it is a bad practice to have them to begin with), but rather as a property on my TChart object and yes, I'd like it to be serialized. If I have 2 graphs (or more) than color palette from one of them has no effect on the others. And in no circumstances no one but me can change this selection (no matter what operation on the graph or its parts I do).
I found a simple project that works correctly and serialized good for code. Please, if this project doesn't work as you want and there are the problem still appears, please change code because we can reproduce your problem exactly here.

Project execution:

- Open project.
- Select palette for one chart
-Select palette for other chart.
-Push Export1/Push Import1 or Chart2 Push Export2/Push Import2.

tChart_Palette.zip
(18.21 KiB) Downloaded 643 times
I hope will helps.

Thanks,

Re: Using color palettes

Posted: Mon Feb 08, 2010 4:32 pm
by 14045174
Ok, to be clear, I'll state my expectations here:

Code: Select all

            Graphics3D.ColorPalette = Theme.TeeChartPalette;
            var chart = new TChart();
At this point I expect Graphics3D.ColorPalette = Theme.TeeChartPalette... it is not.

Code: Select all

            Graphics3D.ColorPalette = Theme.TeeChartPalette;
            tChart1.Import.Template.Load("c:\\tChart.ten");
At this point I expect Graphics3D.ColorPalette = Theme.TeeChartPalette... it is not.

Using

Code: Select all

            ColorPalettes.ApplyPalette(tChart1.Chart, Theme.TeeChartPalette);
is no different - the results are the same - the color palette is reset (for no reason) to the default.

There are other places in my program where in some cases Color Palette is reset by your code while I am adding new series, but I cannot duplicate it easily outside of my program. But I am pretty sure that if you'd fix the cases above, then my color palette would stay. And again, I will repeat, it is rather weird you have it stored in a static property of your Graphics3D class. It does not belong there at all! It should be a property on a TChart class (not static!) and should be serialized with it.

Re: Using color palettes

Posted: Tue Feb 09, 2010 9:38 am
by 10050769
Hello UserLs,

I could reproduce a problem where palette of chart is resetting when I import chart and appears default palette Opera. Please you could confirm if next code reproduce same problem that you have.

Code: Select all

public Form1()
        {
            InitializeComponent();
            InitializeChart();
        }
        private Steema.TeeChart.Styles.Bar bar1;
        private void InitializeChart()
        {
            bar1 = new Steema.TeeChart.Styles.Bar(tChart1.Chart);
            bar1.FillSampleValues();
            bar1.ColorEach = true;
            Steema.TeeChart.Themes.ColorPalettes.ApplyPalette(tChart1.Chart, Steema.TeeChart.Themes.Theme.TeeChartPalette);
            tChart1.Export.Template.Save("C:\\TeeChartPalette1.ten"); 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            tChart1.Series.Clear();
            tChart1.Import.Template.Load("C:\\TeechartPalette1.ten");
        }
Thanks,

Re: Using color palettes

Posted: Wed Feb 10, 2010 3:55 pm
by 14045174
Yes, the code you have will show one of my problems. As to your test project you've sent me: just make your charts resize when the form resizes (using anchors for example). Than select different palettes for the charts. So far so good... Now resize the form... This is a HUGE problem. Both charts are using the same palette! Why? (We all know: because it is a static property on your drawing class, but my users do not care for the implementation details. They want it work!)

Re: Using color palettes

Posted: Thu Feb 11, 2010 11:34 am
by 10050769
Hello UserLs,
Yes, the code you have will show one of my problems.
Ok. I have added the issue to bug report list whit number [TF02014681]. We will try to fix it for next versions of TeeChart .Net.
As to your test project you've sent me: just make your charts resize when the form resizes (using anchors for example). Than select different palettes for the charts. So far so good... Now resize the form... This is a HUGE problem. Both charts are using the same palette! Why?
Also, I could reproduce your problem and I have added to bug report list too whit number [TF02014682]. We will try to fix it for next versions of TeeChart.Net

Thanks,