public static object GetValue (INativeDependencyObjectWrapper wrapper, DependencyProperty dp)
{
object result = null;
if (dp == null)
throw new ArgumentNullException ("property");
CheckNativeAndThread (wrapper);
IntPtr val = NativeMethods.dependency_object_get_value (wrapper.NativeHandle, Deployment.Current.Types.TypeToKind (wrapper.GetType ()), dp.Native);
return Value.ToObject (dp.PropertyType, val);
}