@@ -34,7 +34,7 @@ public abstract class Chart
3434 #region Private Members
3535
3636
37- #endregion
37+ #endregion
3838
3939 #region Public Properties
4040
@@ -58,7 +58,7 @@ public List<Series> Series
5858 int index = 1 ;
5959 foreach ( var element in ChartXml . Elements ( ser ) )
6060 {
61- element . Add ( new XElement ( XName . Get ( "idx" , Document . c . NamespaceName ) ) , index . ToString ( ) ) ;
61+ element . Add ( new XElement ( XName . Get ( "idx" , Document . c . NamespaceName ) ) , index . ToString ( ) ) ;
6262 series . Add ( new Series ( element ) ) ;
6363 ++ index ;
6464 }
@@ -247,7 +247,7 @@ public Chart()
247247 }
248248
249249
250- #endregion
250+ #endregion
251251
252252 #region Public Methods
253253
@@ -302,7 +302,7 @@ public void RemoveLegend()
302302 }
303303
304304
305- #endregion
305+ #endregion
306306
307307 #region Protected Methods
308308
@@ -319,7 +319,7 @@ public void RemoveLegend()
319319
320320
321321
322- #endregion
322+ #endregion
323323 }
324324
325325 /// <summary>
@@ -336,6 +336,9 @@ public class Series
336336
337337 #region Public Properties
338338
339+
340+
341+
339342 public Color Color
340343 {
341344 get
@@ -359,21 +362,42 @@ public Color Color
359362 }
360363 set
361364 {
362- var colorElement = this . Xml . Element ( XName . Get ( "spPr" , Document . c . NamespaceName ) ) ;
363- if ( colorElement != null )
365+ var spPrElement = this . Xml . Element ( XName . Get ( "spPr" , Document . c . NamespaceName ) ) ;
366+ string widthValue = string . Empty ;
367+
368+ if ( spPrElement != null )
364369 {
365- colorElement . Remove ( ) ;
370+ var ln = spPrElement . Element ( XName . Get ( "ln" , Document . a . NamespaceName ) ) ;
371+ if ( ln != null )
372+ {
373+ var val = ln . Attribute ( XName . Get ( "w" ) ) ;
374+ if ( val != null )
375+ {
376+ widthValue = val . Value ;
377+ }
378+ }
379+ spPrElement . Remove ( ) ;
366380 }
367381
368382 var colorData = new XElement ( XName . Get ( "solidFill" , Document . a . NamespaceName ) ,
369383 new XElement ( XName . Get ( "srgbClr" , Document . a . NamespaceName ) , new XAttribute ( XName . Get ( "val" ) , value . ToHex ( ) ) ) ) ;
370384
371385 // When the chart containing this series is a lineChart, the line will be colored, else the shape will be colored.
372- colorElement = ( ( this . Xml . Parent != null ) && ( this . Xml . Parent . Name != null ) && ( this . Xml . Parent . Name . LocalName == "lineChart" ) )
373- ? new XElement ( XName . Get ( "spPr" , Document . c . NamespaceName ) ,
374- new XElement ( XName . Get ( "ln" , Document . a . NamespaceName ) , colorData ) )
375- : new XElement ( XName . Get ( "spPr" , Document . c . NamespaceName ) , colorData ) ;
376- this . Xml . Element ( XName . Get ( "tx" , Document . c . NamespaceName ) ) . AddAfterSelf ( colorElement ) ;
386+ if ( string . IsNullOrEmpty ( widthValue ) )
387+ {
388+ spPrElement = ( ( this . Xml . Parent != null ) && ( this . Xml . Parent . Name != null ) && ( this . Xml . Parent . Name . LocalName == "lineChart" ) )
389+ ? new XElement ( XName . Get ( "spPr" , Document . c . NamespaceName ) ,
390+ new XElement ( XName . Get ( "ln" , Document . a . NamespaceName ) , colorData ) )
391+ : new XElement ( XName . Get ( "spPr" , Document . c . NamespaceName ) , colorData ) ;
392+ }
393+ else
394+ {
395+ spPrElement = new XElement ( XName . Get ( "spPr" , Document . c . NamespaceName ) ,
396+ new XElement ( XName . Get ( "ln" , Document . a . NamespaceName ) ,
397+ new XAttribute ( XName . Get ( "w" ) , widthValue ) , colorData ) ) ;
398+ }
399+
400+ this . Xml . Element ( XName . Get ( "tx" , Document . c . NamespaceName ) ) . AddAfterSelf ( spPrElement ) ;
377401 }
378402 }
379403
@@ -390,7 +414,7 @@ public Color Color
390414
391415
392416
393- #endregion
417+ #endregion
394418
395419 #region Internal Properties
396420
@@ -422,7 +446,7 @@ internal Series( XElement xml )
422446
423447 var val = xml . Element ( XName . Get ( "val" , Document . c . NamespaceName ) ) ;
424448 if ( val != null )
425- {
449+ {
426450 _numCache = val . Descendants ( XName . Get ( "numCache" , Document . c . NamespaceName ) ) . FirstOrDefault ( ) ;
427451 if ( _numCache == null )
428452 {
@@ -438,18 +462,18 @@ public Series( String name )
438462
439463 this . Xml = new XElement ( XName . Get ( "ser" , Document . c . NamespaceName ) ,
440464 new XElement ( XName . Get ( "tx" , Document . c . NamespaceName ) ,
441- new XElement ( XName . Get ( "strRef" , Document . c . NamespaceName ) ,
465+ new XElement ( XName . Get ( "strRef" , Document . c . NamespaceName ) ,
442466 new XElement ( XName . Get ( "f" , Document . c . NamespaceName ) , "" ) ,
443467 new XElement ( XName . Get ( "strCache" , Document . c . NamespaceName ) ,
444- new XElement ( XName . Get ( "pt" , Document . c . NamespaceName ) ,
445- new XAttribute ( XName . Get ( "idx" ) , "0" ) ,
468+ new XElement ( XName . Get ( "pt" , Document . c . NamespaceName ) ,
469+ new XAttribute ( XName . Get ( "idx" ) , "0" ) ,
446470 new XElement ( XName . Get ( "v" , Document . c . NamespaceName ) , name ) ) ) ) ) ,
447471 new XElement ( XName . Get ( "invertIfNegative" , Document . c . NamespaceName ) , "0" ) ,
448- new XElement ( XName . Get ( "cat" , Document . c . NamespaceName ) ,
472+ new XElement ( XName . Get ( "cat" , Document . c . NamespaceName ) ,
449473 new XElement ( XName . Get ( "strRef" , Document . c . NamespaceName ) ,
450474 new XElement ( XName . Get ( "f" , Document . c . NamespaceName ) , "" ) ,
451475 _strCache ) ) ,
452- new XElement ( XName . Get ( "val" , Document . c . NamespaceName ) ,
476+ new XElement ( XName . Get ( "val" , Document . c . NamespaceName ) ,
453477 new XElement ( XName . Get ( "numRef" , Document . c . NamespaceName ) ,
454478 new XElement ( XName . Get ( "f" , Document . c . NamespaceName ) , "" ) ,
455479 _numCache ) )
@@ -470,7 +494,7 @@ public void Bind( ICollection list, String categoryPropertyName, String valuePro
470494
471495 _strCache . Add ( ptCount ) ;
472496 _numCache . Add ( formatCode ) ;
473- _numCache . Add ( ptCount ) ;
497+ _numCache . Add ( ptCount ) ;
474498
475499 Int32 index = 0 ;
476500 XElement pt ;
@@ -587,7 +611,7 @@ internal ChartLegend( ChartLegendPosition position, Boolean overlay )
587611 #region Internal Methods
588612
589613
590- #endregion
614+ #endregion
591615
592616 #region Private Methods
593617
0 commit comments