1 // DocumentSerialize SDK Sample - Util.cs
2 // Copyright (c) Microsoft Corporation. All rights reserved.
5 using System
.Collections
.Generic
;
8 using System
.Windows
.Markup
;
9 using System
.Windows
.Threading
;
10 using System
.Windows
.Documents
;
11 using System
.Windows
.Media
;
14 using System
.Security
;
18 public static class Util
20 public static Stream
ConvertTextToStream(string text
)
22 System
.Text
.Encoding encoding
= System
.Text
.Encoding
.Unicode
;
23 byte[] encodedBytes
= encoding
.GetBytes(text
);
24 byte[] preamble
= encoding
.GetPreamble();
25 byte[] identifiableContent
;
27 if (preamble
.Length
== 0)
29 identifiableContent
= encodedBytes
;
33 identifiableContent
= new byte[preamble
.Length
+ encodedBytes
.Length
];
34 preamble
.CopyTo(identifiableContent
, 0);
35 encodedBytes
.CopyTo(identifiableContent
, preamble
.Length
);
38 return new MemoryStream(identifiableContent
);
41 public static object DeSerializeObjectTree(string xaml
)
43 Stream stream
= ConvertTextToStream(xaml
);
44 ParserContext parserContext
= new ParserContext();
45 parserContext
.BaseUri
= new Uri("pack://siteoforigin:,,,/");
46 return XamlReader
.Load(stream
, parserContext
);
49 public static string SerializeObjectTree(object objectTree
, XamlWriterMode expressionMode
)
51 StringBuilder sb
= new StringBuilder();
52 TextWriter writer
= new StringWriter(sb
);
53 XmlTextWriter xmlWriter
= null;
57 // Create XmlTextWriter
58 xmlWriter
= new XmlTextWriter(writer
);
60 // Set serialization mode
61 XamlDesignerSerializationManager manager
= new XamlDesignerSerializationManager(xmlWriter
);
62 manager
.XamlWriterMode
= expressionMode
;
64 System
.Windows
.Markup
.XamlWriter
.Save(objectTree
, manager
);
68 if (xmlWriter
!= null)
75 public static string GetSavedDataPath(string savedXamlFileName
)
79 path
= Directory
.GetCurrentDirectory();
81 path
= System
.IO
.Path
.Combine(path
, savedXamlFileName
);
85 public static FileStream
GetStreamForSavedXamlFile(string savedDataPath
, FileMode mode
)
88 // Get a store from Isolated Storage and see if xamlpad_saved.xaml exists
89 // for this user/application.
90 IsolatedStorageFile isoStore
;
93 isoStore
= IsolatedStorageFile
.GetUserStoreForApplication();
96 catch (SecurityException
)
98 // Just return null as if the saved file wasn't there.
102 // Get a stream for this file
105 IsolatedStorageFileStream stream
= new IsolatedStorageFileStream(
113 catch (FileNotFoundException
)
115 // We are trying to open an existing file but it's not there.
116 // Just return null and we'll default to the initial content.
120 catch (IsolatedStorageException e
)
122 // Isolated Storage permissions may not be granted to this user.
127 // Use the rules for reading/writing the saved file -- if the app was deployed
128 // with ClickOnce, it goes to/from the user's desktop, otherwise the current
129 // directory is used.
132 FileStream stream
= new FileStream(savedDataPath
, mode
);
136 catch (UnauthorizedAccessException
)
141 catch (SecurityException
)
146 catch (FileNotFoundException
)
157 public static void FlushDispatcher()
159 FlushDispatcher(Dispatcher
.CurrentDispatcher
);
162 /// <summary></summary>
163 /// <param name="ctx"></param>
164 public static void FlushDispatcher(Dispatcher ctx
)
166 FlushDispatcher(ctx
, DispatcherPriority
.SystemIdle
);
169 /// <summary></summary>
170 /// <param name="ctx"></param>
171 /// <param name="priority"></param>
172 public static void FlushDispatcher(Dispatcher ctx
, DispatcherPriority priority
)
174 ctx
.Invoke(priority
, new DispatcherOperationCallback(delegate { return null; }
), null);
177 public static string GetIndentedXAML(string designXAML
)
179 if (designXAML
.Trim() == "") return "";
180 TextReader treader
= new StringReader(designXAML
);
181 XmlReader xmlReader
= XmlReader
.Create(treader
);
183 string indentedXAML
= "";
185 while (!xmlReader
.EOF
)
187 switch (xmlReader
.NodeType
)
189 case XmlNodeType
.Element
:
191 for (int i
= 0; i
< xmlReader
.Depth
; i
++) tabs
+= " ";
193 if ((xmlReader
.XmlSpace
== XmlSpace
.Preserve
))
195 indentedXAML
+= "\n" + tabs
+ xmlReader
.ReadOuterXml();
199 indentedXAML
+= "\n" + tabs
+ "<" + xmlReader
.Name
;
200 bool emptyElement
= xmlReader
.IsEmptyElement
;
201 if (xmlReader
.HasAttributes
)
203 for (int i
= 0; i
< xmlReader
.AttributeCount
; i
++)
205 xmlReader
.MoveToAttribute(i
);
206 indentedXAML
+= " " + xmlReader
.Name
+ "=\"" + xmlReader
.Value
+ "\"";
210 if (emptyElement
) indentedXAML
+= "/";
214 case XmlNodeType
.Text
:
215 string origValue
= xmlReader
.Value
;
216 origValue
= origValue
.Replace("&", "&");
217 origValue
= origValue
.Replace("<", "<");
218 origValue
= origValue
.Replace(">", ">");
219 origValue
= origValue
.Replace("\"", """);
220 indentedXAML
+= origValue
;
223 case XmlNodeType
.EndElement
:
225 for (int i
= 0; i
< xmlReader
.Depth
; i
++) tabs
+= " ";
226 indentedXAML
+= "\n" + tabs
+ "</" + xmlReader
.Name
+ ">";
229 case XmlNodeType
.Whitespace
:
230 //indentedXAML += xmlReader.Value;
239 // remove the first \n
240 string realText
= indentedXAML
.Substring(1, indentedXAML
.Length
- 1);
241 indentedXAML
= realText
;
245 private static void InsertBlockWithinParagraph(Paragraph origP
, TextPointer _caretPosition
, Block objectToInsert
)
247 if (IsParagraphEmpty(origP
))
249 FlowDocument fd
= origP
.Parent
as FlowDocument
;
252 fd
.Blocks
.InsertAfter(origP
, objectToInsert
);
253 fd
.Blocks
.Remove(origP
);
257 ListItem li
= origP
.Parent
as ListItem
;
260 li
.Blocks
.InsertAfter(origP
, objectToInsert
);
261 li
.Blocks
.Remove(origP
);
266 _caretPosition
.InsertParagraphBreak();
267 origP
.SiblingBlocks
.InsertAfter(origP
, objectToInsert
);
270 public static string GetFileName(string path
)
272 string[] values
= path
.Split('/');
274 foreach (string s
in values
)
276 if (s
.ToLower().Contains(".jpg") || s
.ToLower().Contains(".bmp") || s
.ToLower().Contains(".png") || s
.ToLower().Contains(".gif"))
284 public static string FindNumeric(string content
)
286 string[] values
= content
.Split(' ');
295 public static string GetBrushesFromString(string value)
297 if (string.Compare(value, Brushes
.AliceBlue
.ToString()) == 0) return "AliceBlue";
298 if (string.Compare(value, Brushes
.AntiqueWhite
.ToString()) == 0) return "AntiqueWhite";
299 if (string.Compare(value, Brushes
.Aqua
.ToString()) == 0) return "Aqua";
300 if (string.Compare(value, Brushes
.Aquamarine
.ToString()) == 0) return "Aquamarine";
301 if (string.Compare(value, Brushes
.Azure
.ToString()) == 0) return "Azure";
302 if (string.Compare(value, Brushes
.Beige
.ToString()) == 0) return "Beige";
303 if (string.Compare(value, Brushes
.Bisque
.ToString()) == 0) return "Bisque";
304 if (string.Compare(value, Brushes
.Black
.ToString()) == 0) return "Black";
305 if (string.Compare(value, Brushes
.BlanchedAlmond
.ToString()) == 0) return "BlanchedAlmond";
306 if (string.Compare(value, Brushes
.Blue
.ToString()) == 0) return "Blue";
307 if (string.Compare(value, Brushes
.BlueViolet
.ToString()) == 0) return "BlueViolet";
308 if (string.Compare(value, Brushes
.Brown
.ToString()) == 0) return "Brown";
309 if (string.Compare(value, Brushes
.BurlyWood
.ToString()) == 0) return "BurlyWood";
310 if (string.Compare(value, Brushes
.CadetBlue
.ToString()) == 0) return "CadetBlue";
311 if (string.Compare(value, Brushes
.Chartreuse
.ToString()) == 0) return "Chartreuse";
312 if (string.Compare(value, Brushes
.Chocolate
.ToString()) == 0) return "Chocolate";
313 if (string.Compare(value, Brushes
.Coral
.ToString()) == 0) return "Coral";
314 if (string.Compare(value, Brushes
.CornflowerBlue
.ToString()) == 0) return "CornflowerBlue";
315 if (string.Compare(value, Brushes
.Cornsilk
.ToString()) == 0) return "Cornsilk";
316 if (string.Compare(value, Brushes
.Crimson
.ToString()) == 0) return "Crimson";
317 if (string.Compare(value, Brushes
.Cyan
.ToString()) == 0) return "Cyan";
318 if (string.Compare(value, Brushes
.DarkBlue
.ToString()) == 0) return "DarkBlue";
319 if (string.Compare(value, Brushes
.DarkCyan
.ToString()) == 0) return "DarkCyan";
320 if (string.Compare(value, Brushes
.DarkGoldenrod
.ToString()) == 0) return "DarkGoldenrod";
321 if (string.Compare(value, Brushes
.DarkGray
.ToString()) == 0) return "DarkGray";
322 if (string.Compare(value, Brushes
.DarkGreen
.ToString()) == 0) return "DarkGreen";
323 if (string.Compare(value, Brushes
.DarkKhaki
.ToString()) == 0) return "DarkKhaki";
324 if (string.Compare(value, Brushes
.DarkMagenta
.ToString()) == 0) return "DarkMagenta";
325 if (string.Compare(value, Brushes
.DarkOliveGreen
.ToString()) == 0) return "DarkOliveGreen";
326 if (string.Compare(value, Brushes
.DarkOrange
.ToString()) == 0) return "DarkOrange";
327 if (string.Compare(value, Brushes
.DarkOrchid
.ToString()) == 0) return "DarkOrchid";
328 if (string.Compare(value, Brushes
.DarkRed
.ToString()) == 0) return "DarkRed";
329 if (string.Compare(value, Brushes
.DarkSalmon
.ToString()) == 0) return "DarkSalmon";
330 if (string.Compare(value, Brushes
.DarkSeaGreen
.ToString()) == 0) return "DarkSeaGreen";
331 if (string.Compare(value, Brushes
.DarkSlateBlue
.ToString()) == 0) return "DarkSlateBlue";
332 if (string.Compare(value, Brushes
.DarkSlateGray
.ToString()) == 0) return "DarkSlateGray";
333 if (string.Compare(value, Brushes
.DarkTurquoise
.ToString()) == 0) return "DarkTurquoise";
334 if (string.Compare(value, Brushes
.DarkViolet
.ToString()) == 0) return "DarkViolet";
335 if (string.Compare(value, Brushes
.DeepPink
.ToString()) == 0) return "DeepPink";
336 if (string.Compare(value, Brushes
.DeepSkyBlue
.ToString()) == 0) return "DeepSkyBlue";
337 if (string.Compare(value, Brushes
.DimGray
.ToString()) == 0) return "DimGray";
338 if (string.Compare(value, Brushes
.DodgerBlue
.ToString()) == 0) return "DodgerBlue";
339 if (string.Compare(value, Brushes
.Firebrick
.ToString()) == 0) return "Firebrick";
340 if (string.Compare(value, Brushes
.FloralWhite
.ToString()) == 0) return "FloralWhite";
341 if (string.Compare(value, Brushes
.ForestGreen
.ToString()) == 0) return "ForestGreen";
342 if (string.Compare(value, Brushes
.Fuchsia
.ToString()) == 0) return "Fuchsia";
343 if (string.Compare(value, Brushes
.Gainsboro
.ToString()) == 0) return "Gainsboro";
344 if (string.Compare(value, Brushes
.GhostWhite
.ToString()) == 0) return "GhostWhite";
345 if (string.Compare(value, Brushes
.Gold
.ToString()) == 0) return "Gold";
346 if (string.Compare(value, Brushes
.Goldenrod
.ToString()) == 0) return "Goldenrod";
347 if (string.Compare(value, Brushes
.Gray
.ToString()) == 0) return "Gray";
348 if (string.Compare(value, Brushes
.Green
.ToString()) == 0) return "Green";
349 if (string.Compare(value, Brushes
.GreenYellow
.ToString()) == 0) return "GreenYellow";
350 if (string.Compare(value, Brushes
.Honeydew
.ToString()) == 0) return "Honeydew";
351 if (string.Compare(value, Brushes
.HotPink
.ToString()) == 0) return "HotPink";
352 if (string.Compare(value, Brushes
.IndianRed
.ToString()) == 0) return "IndianRed";
353 if (string.Compare(value, Brushes
.Indigo
.ToString()) == 0) return "Indigo";
354 if (string.Compare(value, Brushes
.Ivory
.ToString()) == 0) return "Ivory";
355 if (string.Compare(value, Brushes
.Khaki
.ToString()) == 0) return "Khaki";
356 if (string.Compare(value, Brushes
.Lavender
.ToString()) == 0) return "Lavender";
357 if (string.Compare(value, Brushes
.LavenderBlush
.ToString()) == 0) return "LavenderBlush";
358 if (string.Compare(value, Brushes
.LawnGreen
.ToString()) == 0) return "LawnGreen";
359 if (string.Compare(value, Brushes
.LemonChiffon
.ToString()) == 0) return "LemonChiffon";
360 if (string.Compare(value, Brushes
.LightBlue
.ToString()) == 0) return "LightBlue";
361 if (string.Compare(value, Brushes
.LightCoral
.ToString()) == 0) return "LightCoral";
362 if (string.Compare(value, Brushes
.LightCyan
.ToString()) == 0) return "LightCyan";
363 if (string.Compare(value, Brushes
.LightGoldenrodYellow
.ToString()) == 0) return "LightGoldenrodYellow";
364 if (string.Compare(value, Brushes
.LightGray
.ToString()) == 0) return "LightGray";
365 if (string.Compare(value, Brushes
.LightGreen
.ToString()) == 0) return "LightGreen";
366 if (string.Compare(value, Brushes
.LightPink
.ToString()) == 0) return "LightPink";
367 if (string.Compare(value, Brushes
.LightSalmon
.ToString()) == 0) return "LightSalmon";
368 if (string.Compare(value, Brushes
.LightSeaGreen
.ToString()) == 0) return "LightSeaGreen";
369 if (string.Compare(value, Brushes
.LightSkyBlue
.ToString()) == 0) return "LightSkyBlue";
370 if (string.Compare(value, Brushes
.LightSlateGray
.ToString()) == 0) return "LightSlateGray";
371 if (string.Compare(value, Brushes
.LightSteelBlue
.ToString()) == 0) return "LightSteelBlue";
372 if (string.Compare(value, Brushes
.LightYellow
.ToString()) == 0) return "LightYellow";
373 if (string.Compare(value, Brushes
.Lime
.ToString()) == 0) return "Lime";
374 if (string.Compare(value, Brushes
.LimeGreen
.ToString()) == 0) return "LimeGreen";
375 if (string.Compare(value, Brushes
.Linen
.ToString()) == 0) return "Linen";
376 if (string.Compare(value, Brushes
.Magenta
.ToString()) == 0) return "Magenta";
377 if (string.Compare(value, Brushes
.Maroon
.ToString()) == 0) return "Maroon";
378 if (string.Compare(value, Brushes
.MediumAquamarine
.ToString()) == 0) return "MediumAquamarine";
379 if (string.Compare(value, Brushes
.MediumBlue
.ToString()) == 0) return "MediumBlue";
380 if (string.Compare(value, Brushes
.MediumOrchid
.ToString()) == 0) return "MediumOrchid";
381 if (string.Compare(value, Brushes
.MediumPurple
.ToString()) == 0) return "MediumPurple";
382 if (string.Compare(value, Brushes
.MediumSeaGreen
.ToString()) == 0) return "MediumSeaGreen";
383 if (string.Compare(value, Brushes
.MediumSlateBlue
.ToString()) == 0) return "MediumSlateBlue";
384 if (string.Compare(value, Brushes
.MediumSpringGreen
.ToString()) == 0) return "MediumSpringGreen";
385 if (string.Compare(value, Brushes
.MediumTurquoise
.ToString()) == 0) return "MediumTurquoise";
386 if (string.Compare(value, Brushes
.MediumVioletRed
.ToString()) == 0) return "MediumVioletRed";
387 if (string.Compare(value, Brushes
.MidnightBlue
.ToString()) == 0) return "MidnightBlue";
388 if (string.Compare(value, Brushes
.MintCream
.ToString()) == 0) return "MintCream";
389 if (string.Compare(value, Brushes
.MistyRose
.ToString()) == 0) return "MistyRose";
390 if (string.Compare(value, Brushes
.Moccasin
.ToString()) == 0) return "Moccasin";
391 if (string.Compare(value, Brushes
.NavajoWhite
.ToString()) == 0) return "NavajoWhite";
392 if (string.Compare(value, Brushes
.Navy
.ToString()) == 0) return "Navy";
393 if (string.Compare(value, Brushes
.OldLace
.ToString()) == 0) return "OldLace";
394 if (string.Compare(value, Brushes
.Olive
.ToString()) == 0) return "Olive";
395 if (string.Compare(value, Brushes
.OliveDrab
.ToString()) == 0) return "OliveDrab";
396 if (string.Compare(value, Brushes
.Orange
.ToString()) == 0) return "Orange";
397 if (string.Compare(value, Brushes
.OrangeRed
.ToString()) == 0) return "OrangeRed";
398 if (string.Compare(value, Brushes
.Orchid
.ToString()) == 0) return "Orchid";
399 if (string.Compare(value, Brushes
.PaleGoldenrod
.ToString()) == 0) return "PaleGoldenrod";
400 if (string.Compare(value, Brushes
.PaleGreen
.ToString()) == 0) return "AntiqueWhite";
401 if (string.Compare(value, Brushes
.PaleTurquoise
.ToString()) == 0) return "PaleGreen";
402 if (string.Compare(value, Brushes
.PaleVioletRed
.ToString()) == 0) return "PaleVioletRed";
403 if (string.Compare(value, Brushes
.PapayaWhip
.ToString()) == 0) return "PapayaWhip";
404 if (string.Compare(value, Brushes
.PeachPuff
.ToString()) == 0) return "PeachPuff";
405 if (string.Compare(value, Brushes
.Peru
.ToString()) == 0) return "Peru";
406 if (string.Compare(value, Brushes
.Pink
.ToString()) == 0) return "Pink";
407 if (string.Compare(value, Brushes
.Plum
.ToString()) == 0) return "Plum";
408 if (string.Compare(value, Brushes
.PowderBlue
.ToString()) == 0) return "PowderBlue";
409 if (string.Compare(value, Brushes
.Purple
.ToString()) == 0) return "Purple";
410 if (string.Compare(value, Brushes
.Red
.ToString()) == 0) return "Red";
411 if (string.Compare(value, Brushes
.RosyBrown
.ToString()) == 0) return "RosyBrown";
412 if (string.Compare(value, Brushes
.RoyalBlue
.ToString()) == 0) return "RoyalBlue";
413 if (string.Compare(value, Brushes
.SaddleBrown
.ToString()) == 0) return "SaddleBrown";
414 if (string.Compare(value, Brushes
.Salmon
.ToString()) == 0) return "Salmon";
415 if (string.Compare(value, Brushes
.SandyBrown
.ToString()) == 0) return "SandyBrown";
416 if (string.Compare(value, Brushes
.SeaGreen
.ToString()) == 0) return "SeaGreen";
417 if (string.Compare(value, Brushes
.SeaShell
.ToString()) == 0) return "SeaShell";
418 if (string.Compare(value, Brushes
.Sienna
.ToString()) == 0) return "Sienna";
419 if (string.Compare(value, Brushes
.Silver
.ToString()) == 0) return "Silver";
420 if (string.Compare(value, Brushes
.SkyBlue
.ToString()) == 0) return "SkyBlue";
421 if (string.Compare(value, Brushes
.SlateBlue
.ToString()) == 0) return "SlateBlue";
422 if (string.Compare(value, Brushes
.SlateGray
.ToString()) == 0) return "SlateGray";
423 if (string.Compare(value, Brushes
.Snow
.ToString()) == 0) return "Snow";
424 if (string.Compare(value, Brushes
.SpringGreen
.ToString()) == 0) return "SpringGreen";
425 if (string.Compare(value, Brushes
.SteelBlue
.ToString()) == 0) return "SteelBlue";
426 if (string.Compare(value, Brushes
.Tan
.ToString()) == 0) return "Tan";
427 if (string.Compare(value, Brushes
.Teal
.ToString()) == 0) return "Teal";
428 if (string.Compare(value, Brushes
.Thistle
.ToString()) == 0) return "Thistle";
429 if (string.Compare(value, Brushes
.Tomato
.ToString()) == 0) return "Tomato";
430 if (string.Compare(value, Brushes
.Transparent
.ToString()) == 0) return "Transparent";
431 if (string.Compare(value, Brushes
.Turquoise
.ToString()) == 0) return "Turquoise";
432 if (string.Compare(value, Brushes
.Violet
.ToString()) == 0) return "Violet";
433 if (string.Compare(value, Brushes
.Wheat
.ToString()) == 0) return "Wheat";
434 if (string.Compare(value, Brushes
.White
.ToString()) == 0) return "White";
435 if (string.Compare(value, Brushes
.WhiteSmoke
.ToString()) == 0) return "WhiteSmoke";
436 if (string.Compare(value, Brushes
.Yellow
.ToString()) == 0) return "Yellow";
437 if (string.Compare(value, Brushes
.YellowGreen
.ToString()) == 0) return "YellowGreen";
439 return "color not specified";
442 public static SolidColorBrush
ColorStringToBrushes(string colorString
)
444 colorString
= colorString
.Trim();
445 if (null != colorString
)
447 // We use invariant culture because we don't globalize our color names
448 string colorUpper
= colorString
.ToUpper(System
.Globalization
.CultureInfo
.InvariantCulture
);
450 // Use String.Equals because it does explicit equality
451 // StartsWith/EndsWith are culture sensitive and are 4-7 times slower than Equals
453 switch (colorUpper
.Length
)
456 if (colorUpper
.Equals("RED")) return Brushes
.Red
;
457 if (colorUpper
.Equals("TAN")) return Brushes
.Tan
;
460 switch (colorUpper
[0])
463 if (colorUpper
.Equals("AQUA")) return Brushes
.Aqua
;
466 if (colorUpper
.Equals("BLUE")) return Brushes
.Blue
;
469 if (colorUpper
.Equals("CYAN")) return Brushes
.Cyan
;
472 if (colorUpper
.Equals("GOLD")) return Brushes
.Gold
;
473 if (colorUpper
.Equals("GRAY")) return Brushes
.Gray
;
476 if (colorUpper
.Equals("LIME")) return Brushes
.Lime
;
479 if (colorUpper
.Equals("NAVY")) return Brushes
.Navy
;
482 if (colorUpper
.Equals("PERU")) return Brushes
.Peru
;
483 if (colorUpper
.Equals("PINK")) return Brushes
.Pink
;
484 if (colorUpper
.Equals("PLUM")) return Brushes
.Plum
;
487 if (colorUpper
.Equals("SNOW")) return Brushes
.Snow
;
490 if (colorUpper
.Equals("TEAL")) return Brushes
.Teal
;
495 switch (colorUpper
[0])
498 if (colorUpper
.Equals("AZURE")) return Brushes
.Azure
;
501 if (colorUpper
.Equals("BEIGE")) return Brushes
.Beige
;
502 if (colorUpper
.Equals("BLACK")) return Brushes
.Black
;
503 if (colorUpper
.Equals("BROWN")) return Brushes
.Brown
;
506 if (colorUpper
.Equals("CORAL")) return Brushes
.Coral
;
509 if (colorUpper
.Equals("GREEN")) return Brushes
.Green
;
512 if (colorUpper
.Equals("IVORY")) return Brushes
.Ivory
;
515 if (colorUpper
.Equals("KHAKI")) return Brushes
.Khaki
;
518 if (colorUpper
.Equals("LINEN")) return Brushes
.Linen
;
521 if (colorUpper
.Equals("OLIVE")) return Brushes
.Olive
;
524 if (colorUpper
.Equals("WHEAT")) return Brushes
.Wheat
;
525 if (colorUpper
.Equals("WHITE")) return Brushes
.White
;
530 switch (colorUpper
[0])
533 if (colorUpper
.Equals("BISQUE")) return Brushes
.Bisque
;
536 if (colorUpper
.Equals("INDIGO")) return Brushes
.Indigo
;
539 if (colorUpper
.Equals("MAROON")) return Brushes
.Maroon
;
542 if (colorUpper
.Equals("ORANGE")) return Brushes
.Orange
;
543 if (colorUpper
.Equals("ORCHID")) return Brushes
.Orchid
;
546 if (colorUpper
.Equals("PURPLE")) return Brushes
.Purple
;
549 if (colorUpper
.Equals("SALMON")) return Brushes
.Salmon
;
550 if (colorUpper
.Equals("SIENNA")) return Brushes
.Sienna
;
551 if (colorUpper
.Equals("SILVER")) return Brushes
.Silver
;
554 if (colorUpper
.Equals("TOMATO")) return Brushes
.Tomato
;
557 if (colorUpper
.Equals("VIOLET")) return Brushes
.Violet
;
560 if (colorUpper
.Equals("YELLOW")) return Brushes
.Yellow
;
565 switch (colorUpper
[0])
568 if (colorUpper
.Equals("CRIMSON")) return Brushes
.Crimson
;
571 if (colorUpper
.Equals("DARKRED")) return Brushes
.DarkRed
;
572 if (colorUpper
.Equals("DIMGRAY")) return Brushes
.DimGray
;
575 if (colorUpper
.Equals("FUCHSIA")) return Brushes
.Fuchsia
;
578 if (colorUpper
.Equals("HOTPINK")) return Brushes
.HotPink
;
581 if (colorUpper
.Equals("MAGENTA")) return Brushes
.Magenta
;
584 if (colorUpper
.Equals("OLDLACE")) return Brushes
.OldLace
;
587 if (colorUpper
.Equals("SKYBLUE")) return Brushes
.SkyBlue
;
590 if (colorUpper
.Equals("THISTLE")) return Brushes
.Thistle
;
595 switch (colorUpper
[0])
598 if (colorUpper
.Equals("CORNSILK")) return Brushes
.Cornsilk
;
601 if (colorUpper
.Equals("DARKBLUE")) return Brushes
.DarkBlue
;
602 if (colorUpper
.Equals("DARKCYAN")) return Brushes
.DarkCyan
;
603 if (colorUpper
.Equals("DARKGRAY")) return Brushes
.DarkGray
;
604 if (colorUpper
.Equals("DEEPPINK")) return Brushes
.DeepPink
;
607 if (colorUpper
.Equals("HONEYDEW")) return Brushes
.Honeydew
;
610 if (colorUpper
.Equals("LAVENDER")) return Brushes
.Lavender
;
613 if (colorUpper
.Equals("MOCCASIN")) return Brushes
.Moccasin
;
616 if (colorUpper
.Equals("SEAGREEN")) return Brushes
.SeaGreen
;
617 if (colorUpper
.Equals("SEASHELL")) return Brushes
.SeaShell
;
622 switch (colorUpper
[0])
625 if (colorUpper
.Equals("ALICEBLUE")) return Brushes
.AliceBlue
;
628 if (colorUpper
.Equals("BURLYWOOD")) return Brushes
.BurlyWood
;
631 if (colorUpper
.Equals("CADETBLUE")) return Brushes
.CadetBlue
;
632 if (colorUpper
.Equals("CHOCOLATE")) return Brushes
.Chocolate
;
635 if (colorUpper
.Equals("DARKGREEN")) return Brushes
.DarkGreen
;
636 if (colorUpper
.Equals("DARKKHAKI")) return Brushes
.DarkKhaki
;
639 if (colorUpper
.Equals("FIREBRICK")) return Brushes
.Firebrick
;
642 if (colorUpper
.Equals("GAINSBORO")) return Brushes
.Gainsboro
;
643 if (colorUpper
.Equals("GOLDENROD")) return Brushes
.Goldenrod
;
646 if (colorUpper
.Equals("INDIANRED")) return Brushes
.IndianRed
;
649 if (colorUpper
.Equals("LAWNGREEN")) return Brushes
.LawnGreen
;
650 if (colorUpper
.Equals("LIGHTBLUE")) return Brushes
.LightBlue
;
651 if (colorUpper
.Equals("LIGHTCYAN")) return Brushes
.LightCyan
;
652 if (colorUpper
.Equals("LIGHTGRAY")) return Brushes
.LightGray
;
653 if (colorUpper
.Equals("LIGHTPINK")) return Brushes
.LightPink
;
654 if (colorUpper
.Equals("LIMEGREEN")) return Brushes
.LimeGreen
;
657 if (colorUpper
.Equals("MINTCREAM")) return Brushes
.MintCream
;
658 if (colorUpper
.Equals("MISTYROSE")) return Brushes
.MistyRose
;
661 if (colorUpper
.Equals("OLIVEDRAB")) return Brushes
.OliveDrab
;
662 if (colorUpper
.Equals("ORANGERED")) return Brushes
.OrangeRed
;
665 if (colorUpper
.Equals("PALEGREEN")) return Brushes
.PaleGreen
;
666 if (colorUpper
.Equals("PEACHPUFF")) return Brushes
.PeachPuff
;
669 if (colorUpper
.Equals("ROSYBROWN")) return Brushes
.RosyBrown
;
670 if (colorUpper
.Equals("ROYALBLUE")) return Brushes
.RoyalBlue
;
673 if (colorUpper
.Equals("SLATEBLUE")) return Brushes
.SlateBlue
;
674 if (colorUpper
.Equals("SLATEGRAY")) return Brushes
.SlateGray
;
675 if (colorUpper
.Equals("STEELBLUE")) return Brushes
.SteelBlue
;
678 if (colorUpper
.Equals("TURQUOISE")) return Brushes
.Turquoise
;
683 switch (colorUpper
[0])
686 if (colorUpper
.Equals("AQUAMARINE")) return Brushes
.Aquamarine
;
689 if (colorUpper
.Equals("BLUEVIOLET")) return Brushes
.BlueViolet
;
692 if (colorUpper
.Equals("CHARTREUSE")) return Brushes
.Chartreuse
;
695 if (colorUpper
.Equals("DARKORANGE")) return Brushes
.DarkOrange
;
696 if (colorUpper
.Equals("DARKORCHID")) return Brushes
.DarkOrchid
;
697 if (colorUpper
.Equals("DARKSALMON")) return Brushes
.DarkSalmon
;
698 if (colorUpper
.Equals("DARKVIOLET")) return Brushes
.DarkViolet
;
699 if (colorUpper
.Equals("DODGERBLUE")) return Brushes
.DodgerBlue
;
702 if (colorUpper
.Equals("GHOSTWHITE")) return Brushes
.GhostWhite
;
705 if (colorUpper
.Equals("LIGHTCORAL")) return Brushes
.LightCoral
;
706 if (colorUpper
.Equals("LIGHTGREEN")) return Brushes
.LightGreen
;
709 if (colorUpper
.Equals("MEDIUMBLUE")) return Brushes
.MediumBlue
;
712 if (colorUpper
.Equals("PAPAYAWHIP")) return Brushes
.PapayaWhip
;
713 if (colorUpper
.Equals("POWDERBLUE")) return Brushes
.PowderBlue
;
716 if (colorUpper
.Equals("SANDYBROWN")) return Brushes
.SandyBrown
;
719 if (colorUpper
.Equals("WHITESMOKE")) return Brushes
.WhiteSmoke
;
724 switch (colorUpper
[0])
727 if (colorUpper
.Equals("DARKMAGENTA")) return Brushes
.DarkMagenta
;
728 if (colorUpper
.Equals("DEEPSKYBLUE")) return Brushes
.DeepSkyBlue
;
731 if (colorUpper
.Equals("FLORALWHITE")) return Brushes
.FloralWhite
;
732 if (colorUpper
.Equals("FORESTGREEN")) return Brushes
.ForestGreen
;
735 if (colorUpper
.Equals("GREENYELLOW")) return Brushes
.GreenYellow
;
738 if (colorUpper
.Equals("LIGHTSALMON")) return Brushes
.LightSalmon
;
739 if (colorUpper
.Equals("LIGHTYELLOW")) return Brushes
.LightYellow
;
742 if (colorUpper
.Equals("NAVAJOWHITE")) return Brushes
.NavajoWhite
;
745 if (colorUpper
.Equals("SADDLEBROWN")) return Brushes
.SaddleBrown
;
746 if (colorUpper
.Equals("SPRINGGREEN")) return Brushes
.SpringGreen
;
749 if (colorUpper
.Equals("TRANSPARENT")) return Brushes
.Transparent
;
752 if (colorUpper
.Equals("YELLOWGREEN")) return Brushes
.YellowGreen
;
757 switch (colorUpper
[0])
760 if (colorUpper
.Equals("ANTIQUEWHITE")) return Brushes
.AntiqueWhite
;
763 if (colorUpper
.Equals("DARKSEAGREEN")) return Brushes
.DarkSeaGreen
;
766 if (colorUpper
.Equals("LIGHTSKYBLUE")) return Brushes
.LightSkyBlue
;
767 if (colorUpper
.Equals("LEMONCHIFFON")) return Brushes
.LemonChiffon
;
770 if (colorUpper
.Equals("MEDIUMORCHID")) return Brushes
.MediumOrchid
;
771 if (colorUpper
.Equals("MEDIUMPURPLE")) return Brushes
.MediumPurple
;
772 if (colorUpper
.Equals("MIDNIGHTBLUE")) return Brushes
.MidnightBlue
;
777 switch (colorUpper
[0])
780 if (colorUpper
.Equals("DARKSLATEBLUE")) return Brushes
.DarkSlateBlue
;
781 if (colorUpper
.Equals("DARKSLATEGRAY")) return Brushes
.DarkSlateGray
;
782 if (colorUpper
.Equals("DARKGOLDENROD")) return Brushes
.DarkGoldenrod
;
783 if (colorUpper
.Equals("DARKTURQUOISE")) return Brushes
.DarkTurquoise
;
786 if (colorUpper
.Equals("LIGHTSEAGREEN")) return Brushes
.LightSeaGreen
;
787 if (colorUpper
.Equals("LAVENDERBLUSH")) return Brushes
.LavenderBlush
;
790 if (colorUpper
.Equals("PALEGOLDENROD")) return Brushes
.PaleGoldenrod
;
791 if (colorUpper
.Equals("PALETURQUOISE")) return Brushes
.PaleTurquoise
;
792 if (colorUpper
.Equals("PALEVIOLETRED")) return Brushes
.PaleVioletRed
;
797 switch (colorUpper
[0])
800 if (colorUpper
.Equals("BLANCHEDALMOND")) return Brushes
.BlanchedAlmond
;
803 if (colorUpper
.Equals("CORNFLOWERBLUE")) return Brushes
.CornflowerBlue
;
806 if (colorUpper
.Equals("DARKOLIVEGREEN")) return Brushes
.DarkOliveGreen
;
809 if (colorUpper
.Equals("LIGHTSLATEGRAY")) return Brushes
.LightSlateGray
;
810 if (colorUpper
.Equals("LIGHTSTEELBLUE")) return Brushes
.LightSteelBlue
;
813 if (colorUpper
.Equals("MEDIUMSEAGREEN")) return Brushes
.MediumSeaGreen
;
818 if (colorUpper
.Equals("MEDIUMSLATEBLUE")) return Brushes
.MediumSlateBlue
;
819 if (colorUpper
.Equals("MEDIUMTURQUOISE")) return Brushes
.MediumTurquoise
;
820 if (colorUpper
.Equals("MEDIUMVIOLETRED")) return Brushes
.MediumVioletRed
;
823 if (colorUpper
.Equals("MEDIUMAQUAMARINE")) return Brushes
.MediumAquamarine
;
826 if (colorUpper
.Equals("MEDIUMSPRINGGREEN")) return Brushes
.MediumSpringGreen
;
829 if (colorUpper
.Equals("LIGHTGOLDENRODYELLOW")) return Brushes
.LightGoldenrodYellow
;
836 public static List
<UIElement
> UIElementsInElement(FrameworkContentElement parent
)
838 List
<UIElement
> UIEresults
= new List
<UIElement
>();
839 GetUIElementsRecursively(parent
as DependencyObject
, UIEresults
);
844 static void GetUIElementsRecursively(DependencyObject dObj
, List
<UIElement
> UIresults
)
851 UIElement uiElement
= dObj
as UIElement
;
852 if (uiElement
!= null)
854 UIresults
.Add(uiElement
);
857 foreach (object o
in LogicalTreeHelper
.GetChildren(dObj
))
859 GetUIElementsRecursively(o
as DependencyObject
, UIresults
);
863 static void GetContentElementsRecursively(DependencyObject dObj
, List
<ContentElement
> CEresults
)
870 ContentElement ceElement
= dObj
as ContentElement
;
871 if (ceElement
!= null)
873 CEresults
.Add(ceElement
);
876 foreach (object o
in LogicalTreeHelper
.GetChildren(dObj
))
878 GetContentElementsRecursively(o
as DependencyObject
, CEresults
);
882 static public bool IsParagraphEmpty(Paragraph suspect
)
884 if (suspect
.Inlines
.Count
== 0)
887 if (suspect
.Inlines
.Count
== 1)
889 Run r
= suspect
.Inlines
.FirstInline
as Run
;
902 static void FindParentParagraph(Span child
, ref Paragraph parent
)
904 if (child
.Parent
is Paragraph
)
906 parent
= child
.Parent
as Paragraph
;
911 FindParentParagraph(child
.Parent
as Span
, ref parent
);