TryGetColorValue
(
IMetadataProvider oMetadataProvider,
String sKey,
out Color oColor
)
{
Debug.Assert(oMetadataProvider != null);
AssertValid();
oColor = Color.FromRgb(0, 0, 0);
Object oColorAsObject;
if ( !oMetadataProvider.TryGetValue(sKey, out oColorAsObject) )
{
return (false);
}
if ( typeof(System.Windows.Media.Color).IsInstanceOfType(
oColorAsObject) )
{
oColor = (System.Windows.Media.Color)oColorAsObject;
}
else if ( typeof(System.Drawing.Color).IsInstanceOfType(
oColorAsObject) )
{
oColor = WpfGraphicsUtil.ColorToWpfColor(
(System.Drawing.Color)oColorAsObject );
}
else
{
throw new InvalidOperationException( String.Format(
"The graph, vertex, or edge value with the key \"{0}\" is of"
+ " type {1}. The expected type is either"
+ " System.Windows.Media.Color or System.Drawing.Color."
,
sKey,
oColorAsObject.GetType().FullName
) );
}
return (true);
}