File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed
Source/HtmlRenderer.WPF/Adapters Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff line change 1111// "The Art of War"
1212
1313using System ;
14+ using System . Collections . Generic ;
1415using System . IO ;
16+ using System . Reflection ;
1517using System . Windows ;
1618using System . Windows . Media ;
1719using System . Windows . Media . Imaging ;
@@ -34,8 +36,22 @@ internal sealed class WpfAdapter : RAdapter
3436 /// </summary>
3537 private static readonly WpfAdapter _instance = new WpfAdapter ( ) ;
3638
39+ /// <summary>
40+ /// List of valid predefined color names in lower-case
41+ /// </summary>
42+ private static readonly List < string > ValidColorNamesLc ;
43+
3744 #endregion
3845
46+ static WpfAdapter ( )
47+ {
48+ ValidColorNamesLc = new List < string > ( ) ;
49+ var colorList = new List < PropertyInfo > ( typeof ( Colors ) . GetProperties ( ) ) ;
50+ foreach ( var colorProp in colorList )
51+ {
52+ ValidColorNamesLc . Add ( colorProp . Name . ToLower ( ) ) ;
53+ }
54+ }
3955
4056 /// <summary>
4157 /// Init installed font families and set default font families mapping.
@@ -61,6 +77,10 @@ public static WpfAdapter Instance
6177
6278 protected override RColor GetColorInt ( string colorName )
6379 {
80+ // check if color name is valid to avoid ColorConverter throwing an exception
81+ if ( ! ValidColorNamesLc . Contains ( colorName . ToLower ( ) ) )
82+ return RColor . Empty ;
83+
6484 var convertFromString = ColorConverter . ConvertFromString ( colorName ) ?? Colors . Black ;
6585 return Utils . Convert ( ( Color ) convertFromString ) ;
6686 }
You can’t perform that action at this time.
0 commit comments