/*
 * Automatically generated, do not edit this file directly
 */


#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include "animation.h"
#include "brush.h"
#include "canvas.h"
#include "clock.h"
#include "collection.h"
#include "color.h"
#include "dependencyobject.h"
#include "dependencyproperty.h"
#include "downloader.h"
#include "frameworkelement.h"
#include "geometry.h"
#include "media.h"
#include "mediaelement.h"
#include "namescope.h"
#include "panel.h"
#include "shape.h"
#include "stylus.h"
#include "text.h"
#include "transform.h"
#include "trigger.h"
#include "uielement.h"
#if SL_2_0
#include "animation2.h"
#include "bitmapimage.h"
#include "border.h"
#include "contentcontrol.h"
#include "control.h"
#include "deployment.h"
#include "frameworkelement.h"
#include "geometry.h"
#include "grid.h"
#include "multiscaleimage.h"
#include "multiscalesubimage.h"
#include "stackpanel.h"
#include "style.h"
#include "template.h"
#include "text.h"
#include "textbox.h"
#include "usercontrol.h"
#endif

bool dependency_properties_initialized = false;
void
dependency_property_g_init (void)
{
	if (dependency_properties_initialized)
		return;
	dependency_properties_initialized = true;
#if SL_2_0
	Application::ResourcesProperty = DependencyProperty::Register (Type::APPLICATION, "Resources", Type::RESOURCE_DICTIONARY);
#endif
	ArcSegment::IsLargeArcProperty = DependencyProperty::Register (Type::ARCSEGMENT, "IsLargeArc", new Value (false));
	ArcSegment::PointProperty = DependencyProperty::Register (Type::ARCSEGMENT, "Point", Type::POINT);
	ArcSegment::RotationAngleProperty = DependencyProperty::Register (Type::ARCSEGMENT, "RotationAngle", new Value (0.0));
	ArcSegment::SizeProperty = DependencyProperty::Register (Type::ARCSEGMENT, "Size", Type::POINT);
	ArcSegment::SweepDirectionProperty = DependencyProperty::Register (Type::ARCSEGMENT, "SweepDirection", new Value (SweepDirectionCounterclockwise));
#if SL_2_0
	AssemblyPart::SourceProperty = DependencyProperty::Register (Type::ASSEMBLYPART, "Source", Type::STRING);
#endif
	BeginStoryboard::StoryboardProperty = DependencyProperty::Register (Type::BEGINSTORYBOARD, "Storyboard", Type::STORYBOARD);
	BezierSegment::Point1Property = DependencyProperty::Register (Type::BEZIERSEGMENT, "Point1", Type::POINT);
	BezierSegment::Point2Property = DependencyProperty::Register (Type::BEZIERSEGMENT, "Point2", Type::POINT);
	BezierSegment::Point3Property = DependencyProperty::Register (Type::BEZIERSEGMENT, "Point3", Type::POINT);
#if SL_2_0
	BitmapImage::UriSourceProperty = DependencyProperty::Register (Type::BITMAPIMAGE, "UriSource", Type::STRING);
	Border::BackgroundProperty = DependencyProperty::Register (Type::BORDER, "Background", Type::BRUSH);
	Border::BorderBrushProperty = DependencyProperty::Register (Type::BORDER, "BorderBrush", Type::BRUSH);
	Border::BorderThicknessProperty = DependencyProperty::Register (Type::BORDER, "BorderThickness", new Value (Thickness(0)));
	Border::ChildProperty = DependencyProperty::Register (Type::BORDER, "Child", Type::UIELEMENT);
	Border::CornerRadiusProperty = DependencyProperty::Register (Type::BORDER, "CornerRadius", Type::CORNERRADIUS);
	Border::PaddingProperty = DependencyProperty::Register (Type::BORDER, "Padding", new Value (Thickness(0)));
#endif
	Brush::ChangedProperty = DependencyProperty::Register (Type::BRUSH, "Changed", Type::BOOL);
	Brush::OpacityProperty = DependencyProperty::Register (Type::BRUSH, "Opacity", new Value (1.0));
	Brush::RelativeTransformProperty = DependencyProperty::Register (Type::BRUSH, "RelativeTransform", Type::TRANSFORM);
	Brush::TransformProperty = DependencyProperty::Register (Type::BRUSH, "Transform", Type::TRANSFORM);
	Canvas::LeftProperty = DependencyProperty::RegisterFull (Type::CANVAS, "Left", new Value (0.0), Type::DOUBLE, true, false);
	Canvas::TopProperty = DependencyProperty::RegisterFull (Type::CANVAS, "Top", new Value (0.0), Type::DOUBLE, true, false);
	Canvas::ZIndexProperty = DependencyProperty::RegisterFull (Type::CANVAS, "ZIndex", new Value (0), Type::INT32, true, false);
	Collection::CountProperty = DependencyProperty::Register (Type::COLLECTION, "Count", new Value (0));
	ColorAnimation::ByProperty = DependencyProperty::RegisterNullable (Type::COLORANIMATION, "By", Type::COLOR);
	ColorAnimation::FromProperty = DependencyProperty::RegisterNullable (Type::COLORANIMATION, "From", Type::COLOR);
	ColorAnimation::ToProperty = DependencyProperty::RegisterNullable (Type::COLORANIMATION, "To", Type::COLOR);
	ColorAnimationUsingKeyFrames::KeyFramesProperty = DependencyProperty::Register (Type::COLORANIMATIONUSINGKEYFRAMES, "KeyFrames", Type::COLORKEYFRAME_COLLECTION);
	ColorKeyFrame::KeyTimeProperty = DependencyProperty::RegisterNullable (Type::COLORKEYFRAME, "KeyTime", Type::KEYTIME);
	ColorKeyFrame::ValueProperty = DependencyProperty::RegisterNullable (Type::COLORKEYFRAME, "Value", Type::COLOR);
#if SL_2_0
	ColumnDefinition::MaxWidthProperty = DependencyProperty::Register (Type::COLUMNDEFINITION, "MaxWidth", new Value (INFINITY));
	ColumnDefinition::MinWidthProperty = DependencyProperty::Register (Type::COLUMNDEFINITION, "MinWidth", new Value (0.0));
	ColumnDefinition::WidthProperty = DependencyProperty::Register (Type::COLUMNDEFINITION, "Width", Type::GRIDLENGTH);
	ContentControl::ContentProperty = DependencyProperty::Register (Type::CONTENTCONTROL, "Content", Type::DEPENDENCY_OBJECT);
	ContentControl::ContentTemplateProperty = DependencyProperty::Register (Type::CONTENTCONTROL, "ContentTemplate", Type::DEPENDENCY_OBJECT);
	ContentControl::IsEnabledProperty = DependencyProperty::Register (Type::CONTENTCONTROL, "IsEnabled", new Value (true));
	ContentControl::TextAlignmentProperty = DependencyProperty::Register (Type::CONTENTCONTROL, "TextAlignment", new Value (TextAlignmentLeft));
	ContentControl::TextDecorationsProperty = DependencyProperty::Register (Type::CONTENTCONTROL, "TextDecorations", new Value (TextDecorationsNone));
	ContentControl::TextWrappingProperty = DependencyProperty::Register (Type::CONTENTCONTROL, "TextWrapping", new Value (TextWrappingNoWrap));
	Control::BackgroundProperty = DependencyProperty::Register (Type::CONTROL, "Background", Type::BRUSH);
	Control::BorderBrushProperty = DependencyProperty::Register (Type::CONTROL, "BorderBrush", Type::BRUSH);
	Control::BorderThicknessProperty = DependencyProperty::Register (Type::CONTROL, "BorderThickness", new Value (Thickness(0.0)));
	Control::FontFamilyProperty = DependencyProperty::Register (Type::CONTROL, "FontFamily", new Value (CONTROL_FONT_FAMILY));
	Control::FontSizeProperty = DependencyProperty::Register (Type::CONTROL, "FontSize", new Value (CONTROL_FONT_SIZE));
	Control::FontStretchProperty = DependencyProperty::Register (Type::CONTROL, "FontStretch", new Value (CONTROL_FONT_STRETCH));
	Control::FontStyleProperty = DependencyProperty::Register (Type::CONTROL, "FontStyle", new Value (CONTROL_FONT_STYLE));
	Control::FontWeightProperty = DependencyProperty::Register (Type::CONTROL, "FontWeight", new Value (CONTROL_FONT_WEIGHT));
	Control::ForegroundProperty = DependencyProperty::Register (Type::CONTROL, "Foreground", Type::BRUSH);
	Control::HorizontalContentAlignmentProperty = DependencyProperty::Register (Type::CONTROL, "HorizontalContentAlignment", new Value (HorizontalAlignmentCenter));
	Control::IsTabStopProperty = DependencyProperty::Register (Type::CONTROL, "IsTabStop", new Value (true));
	Control::PaddingProperty = DependencyProperty::Register (Type::CONTROL, "Padding", new Value (Thickness(0.0)));
	Control::TabIndexProperty = DependencyProperty::Register (Type::CONTROL, "TabIndex", new Value (INT_MAX));
	Control::TabNavigationProperty = DependencyProperty::Register (Type::CONTROL, "TabNavigation", new Value (KeyboardNavigationModeLocal));
	Control::TemplateProperty = DependencyProperty::Register (Type::CONTROL, "Template", Type::CONTROLTEMPLATE);
	Control::VerticalContentAlignmentProperty = DependencyProperty::Register (Type::CONTROL, "VerticalContentAlignment", new Value (VerticalAlignmentCenter));
	ControlTemplate::TargetTypeProperty = DependencyProperty::Register (Type::CONTROLTEMPLATE, "TargetType", Type::MANAGED);
#endif
	DependencyObject::NameProperty = DependencyProperty::Register (Type::DEPENDENCY_OBJECT, "Name", Type::STRING);
#if SL_2_0
	Deployment::EntryPointAssemblyProperty = DependencyProperty::Register (Type::DEPLOYMENT, "EntryPointAssembly", Type::STRING);
	Deployment::EntryPointTypeProperty = DependencyProperty::Register (Type::DEPLOYMENT, "EntryPointType", Type::STRING);
	Deployment::ExternalCallersFromCrossDomainProperty = DependencyProperty::Register (Type::DEPLOYMENT, "ExternalCallersFromCrossDomain", new Value (CrossDomainAccessNoAccess));
	Deployment::PartsProperty = DependencyProperty::Register (Type::DEPLOYMENT, "Parts", Type::ASSEMBLYPART_COLLECTION);
	Deployment::RuntimeVersionProperty = DependencyProperty::Register (Type::DEPLOYMENT, "RuntimeVersion", Type::STRING);
#endif
	DoubleAnimation::ByProperty = DependencyProperty::RegisterNullable (Type::DOUBLEANIMATION, "By", Type::DOUBLE);
	DoubleAnimation::FromProperty = DependencyProperty::RegisterNullable (Type::DOUBLEANIMATION, "From", Type::DOUBLE);
	DoubleAnimation::ToProperty = DependencyProperty::RegisterNullable (Type::DOUBLEANIMATION, "To", Type::DOUBLE);
	DoubleAnimationUsingKeyFrames::KeyFramesProperty = DependencyProperty::Register (Type::DOUBLEANIMATIONUSINGKEYFRAMES, "KeyFrames", Type::DOUBLEKEYFRAME_COLLECTION);
	DoubleKeyFrame::KeyTimeProperty = DependencyProperty::RegisterNullable (Type::DOUBLEKEYFRAME, "KeyTime", Type::KEYTIME);
	DoubleKeyFrame::ValueProperty = DependencyProperty::RegisterNullable (Type::DOUBLEKEYFRAME, "Value", Type::DOUBLE);
	Downloader::DownloadProgressProperty = DependencyProperty::Register (Type::DOWNLOADER, "DownloadProgress", new Value (0.0));
	Downloader::ResponseTextProperty = DependencyProperty::Register (Type::DOWNLOADER, "ResponseText", Type::STRING);
	Downloader::StatusProperty = DependencyProperty::Register (Type::DOWNLOADER, "Status", new Value (0));
	Downloader::StatusTextProperty = DependencyProperty::Register (Type::DOWNLOADER, "StatusText", new Value (""));
	Downloader::UriProperty = DependencyProperty::Register (Type::DOWNLOADER, "Uri", Type::STRING);
	DrawingAttributes::ColorProperty = DependencyProperty::Register (Type::DRAWINGATTRIBUTES, "Color", new Value (Color (0xFF000000)));
	DrawingAttributes::HeightProperty = DependencyProperty::Register (Type::DRAWINGATTRIBUTES, "Height", new Value (3.0));
	DrawingAttributes::OutlineColorProperty = DependencyProperty::Register (Type::DRAWINGATTRIBUTES, "OutlineColor", new Value (Color (0x00000000)));
	DrawingAttributes::WidthProperty = DependencyProperty::Register (Type::DRAWINGATTRIBUTES, "Width", new Value (3.0));
	EllipseGeometry::CenterProperty = DependencyProperty::Register (Type::ELLIPSEGEOMETRY, "Center", Type::POINT);
	EllipseGeometry::RadiusXProperty = DependencyProperty::Register (Type::ELLIPSEGEOMETRY, "RadiusX", new Value (0.0));
	EllipseGeometry::RadiusYProperty = DependencyProperty::Register (Type::ELLIPSEGEOMETRY, "RadiusY", new Value (0.0));
	EventTrigger::ActionsProperty = DependencyProperty::Register (Type::EVENTTRIGGER, "Actions", Type::TRIGGERACTION_COLLECTION);
	EventTrigger::RoutedEventProperty = DependencyProperty::Register (Type::EVENTTRIGGER, "RoutedEvent", Type::STRING);
#if SL_2_0
	FrameworkElement::ActualHeightProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "ActualHeight", new Value (0.0));
	FrameworkElement::ActualWidthProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "ActualWidth", new Value (0.0));
	FrameworkElement::DataContextProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "DataContext", Type::MANAGED);
#endif
	FrameworkElement::HeightProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "Height", new Value (0.0));
#if SL_2_0
	FrameworkElement::HorizontalAlignmentProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "HorizontalAlignment", new Value (HorizontalAlignmentStretch));
	FrameworkElement::LanguageProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "Language", new Value ("en-US"));
	FrameworkElement::MarginProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "Margin", new Value (Thickness (0)));
	FrameworkElement::MaxHeightProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "MaxHeight", new Value (INFINITY));
	FrameworkElement::MaxWidthProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "MaxWidth", new Value (INFINITY));
	FrameworkElement::MinHeightProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "MinHeight", new Value (0.0));
	FrameworkElement::MinWidthProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "MinWidth", new Value (0.0));
	FrameworkElement::StyleProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "Style", Type::STYLE);
	FrameworkElement::VerticalAlignmentProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "VerticalAlignment", new Value (VerticalAlignmentStretch));
#endif
	FrameworkElement::WidthProperty = DependencyProperty::Register (Type::FRAMEWORKELEMENT, "Width", new Value (0.0));
	Geometry::FillRuleProperty = DependencyProperty::Register (Type::GEOMETRY, "FillRule", new Value (FillRuleEvenOdd));
	Geometry::TransformProperty = DependencyProperty::Register (Type::GEOMETRY, "Transform", Type::TRANSFORM);
	GeometryGroup::ChildrenProperty = DependencyProperty::Register (Type::GEOMETRYGROUP, "Children", Type::GEOMETRY_COLLECTION);
	Glyphs::FillProperty = DependencyProperty::Register (Type::GLYPHS, "Fill", Type::BRUSH);
	Glyphs::FontRenderingEmSizeProperty = DependencyProperty::Register (Type::GLYPHS, "FontRenderingEmSize", new Value (0.0));
	Glyphs::FontUriProperty = DependencyProperty::Register (Type::GLYPHS, "FontUri", Type::STRING);
	Glyphs::IndicesProperty = DependencyProperty::Register (Type::GLYPHS, "Indices", Type::STRING);
	Glyphs::OriginXProperty = DependencyProperty::Register (Type::GLYPHS, "OriginX", new Value (0.0));
	Glyphs::OriginYProperty = DependencyProperty::Register (Type::GLYPHS, "OriginY", new Value (0.0));
	Glyphs::StyleSimulationsProperty = DependencyProperty::Register (Type::GLYPHS, "StyleSimulations", new Value (StyleSimulationsNone));
	Glyphs::UnicodeStringProperty = DependencyProperty::Register (Type::GLYPHS, "UnicodeString", Type::STRING);
	GradientBrush::ColorInterpolationModeProperty = DependencyProperty::Register (Type::GRADIENTBRUSH, "ColorInterpolationMode", new Value (ColorInterpolationModeSRgbLinearInterpolation));
	GradientBrush::GradientStopsProperty = DependencyProperty::Register (Type::GRADIENTBRUSH, "GradientStops", Type::GRADIENTSTOP_COLLECTION);
	GradientBrush::MappingModeProperty = DependencyProperty::Register (Type::GRADIENTBRUSH, "MappingMode", new Value (BrushMappingModeRelativeToBoundingBox));
	GradientBrush::SpreadMethodProperty = DependencyProperty::Register (Type::GRADIENTBRUSH, "SpreadMethod", new Value (GradientSpreadMethodPad));
	GradientStop::ColorProperty = DependencyProperty::Register (Type::GRADIENTSTOP, "Color", new Value (Color (0x00000000)));
	GradientStop::OffsetProperty = DependencyProperty::Register (Type::GRADIENTSTOP, "Offset", new Value (0.0));
#if SL_2_0
	Grid::ColumnDefinitionsProperty = DependencyProperty::Register (Type::GRID, "ColumnDefinitions", Type::COLUMNDEFINITION_COLLECTION);
	Grid::ColumnProperty = DependencyProperty::RegisterFull (Type::GRID, "Column", new Value (0), Type::INT32, true, false);
	Grid::ColumnSpanProperty = DependencyProperty::RegisterFull (Type::GRID, "ColumnSpan", new Value (1), Type::INT32, true, false);
	Grid::RowDefinitionsProperty = DependencyProperty::Register (Type::GRID, "RowDefinitions", Type::ROWDEFINITION_COLLECTION);
	Grid::RowProperty = DependencyProperty::RegisterFull (Type::GRID, "Row", new Value (0), Type::INT32, true, false);
	Grid::RowSpanProperty = DependencyProperty::RegisterFull (Type::GRID, "RowSpan", new Value (1), Type::INT32, true, false);
	Grid::ShowGridLinesProperty = DependencyProperty::Register (Type::GRID, "ShowGridLines", new Value (false));
#endif
	ImageBrush::DownloadProgressProperty = DependencyProperty::Register (Type::IMAGEBRUSH, "DownloadProgress", new Value (0.0));
	ImageBrush::ImageSourceProperty = DependencyProperty::Register (Type::IMAGEBRUSH, "ImageSource", new Value (""));
	InkPresenter::StrokesProperty = DependencyProperty::Register (Type::INKPRESENTER, "Strokes", Type::STROKE_COLLECTION);
	Inline::FontFamilyProperty = DependencyProperty::Register (Type::INLINE, "FontFamily", new Value (TEXTBLOCK_FONT_FAMILY));
	Inline::FontSizeProperty = DependencyProperty::Register (Type::INLINE, "FontSize", new Value (TEXTBLOCK_FONT_SIZE));
	Inline::FontStretchProperty = DependencyProperty::Register (Type::INLINE, "FontStretch", new Value (TEXTBLOCK_FONT_STRETCH));
	Inline::FontStyleProperty = DependencyProperty::Register (Type::INLINE, "FontStyle", new Value (TEXTBLOCK_FONT_STYLE));
	Inline::FontWeightProperty = DependencyProperty::Register (Type::INLINE, "FontWeight", new Value (TEXTBLOCK_FONT_WEIGHT));
	Inline::ForegroundProperty = DependencyProperty::Register (Type::INLINE, "Foreground", Type::BRUSH);
#if SL_2_0
	Inline::LanguageProperty = DependencyProperty::Register (Type::INLINE, "Language", new Value ("en-US"));
#endif
	Inline::TextDecorationsProperty = DependencyProperty::Register (Type::INLINE, "TextDecorations", new Value (TextDecorationsNone));
	KeySpline::ControlPoint1Property = DependencyProperty::Register (Type::KEYSPLINE, "ControlPoint1", new Value (Point (0,0)));
	KeySpline::ControlPoint2Property = DependencyProperty::Register (Type::KEYSPLINE, "ControlPoint2", new Value (Point (1.0, 1.0)));
	Line::X1Property = DependencyProperty::Register (Type::LINE, "X1", new Value (0.0));
	Line::X2Property = DependencyProperty::Register (Type::LINE, "X2", new Value (0.0));
	Line::Y1Property = DependencyProperty::Register (Type::LINE, "Y1", new Value (0.0));
	Line::Y2Property = DependencyProperty::Register (Type::LINE, "Y2", new Value (0.0));
	LinearGradientBrush::EndPointProperty = DependencyProperty::Register (Type::LINEARGRADIENTBRUSH, "EndPoint", Type::POINT);
	LinearGradientBrush::StartPointProperty = DependencyProperty::Register (Type::LINEARGRADIENTBRUSH, "StartPoint", Type::POINT);
	LineGeometry::EndPointProperty = DependencyProperty::Register (Type::LINEGEOMETRY, "EndPoint", Type::POINT);
	LineGeometry::StartPointProperty = DependencyProperty::Register (Type::LINEGEOMETRY, "StartPoint", Type::POINT);
	LineSegment::PointProperty = DependencyProperty::Register (Type::LINESEGMENT, "Point", Type::POINT);
	Matrix::M11Property = DependencyProperty::Register (Type::MATRIX, "M11", new Value (1.0));
	Matrix::M12Property = DependencyProperty::Register (Type::MATRIX, "M12", new Value (0.0));
	Matrix::M21Property = DependencyProperty::Register (Type::MATRIX, "M21", new Value (0.0));
	Matrix::M22Property = DependencyProperty::Register (Type::MATRIX, "M22", new Value (1.0));
	Matrix::OffsetXProperty = DependencyProperty::Register (Type::MATRIX, "OffsetX", new Value (0.0));
	Matrix::OffsetYProperty = DependencyProperty::Register (Type::MATRIX, "OffsetY", new Value (0.0));
	MatrixTransform::MatrixProperty = DependencyProperty::Register (Type::MATRIXTRANSFORM, "Matrix", Type::MATRIX);
	MediaAttribute::ValueProperty = DependencyProperty::Register (Type::MEDIAATTRIBUTE, "Value", Type::STRING);
	MediaBase::DownloadProgressProperty = DependencyProperty::Register (Type::MEDIABASE, "DownloadProgress", new Value (0.0));
	MediaBase::SourceProperty = DependencyProperty::RegisterFull (Type::MEDIABASE, "Source", NULL, Type::STRING, false, false, true, NULL);
	MediaBase::StretchProperty = DependencyProperty::Register (Type::MEDIABASE, "Stretch", new Value (StretchUniform));
	MediaElement::AttributesProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "Attributes", Type::MEDIAATTRIBUTE_COLLECTION);
	MediaElement::AudioStreamCountProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "AudioStreamCount", new Value (0), Type::INT32, false, true);
	MediaElement::AudioStreamIndexProperty = DependencyProperty::RegisterNullable (Type::MEDIAELEMENT, "AudioStreamIndex", Type::INT32);
	MediaElement::AutoPlayProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "AutoPlay", new Value (true));
	MediaElement::BalanceProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "Balance", new Value (0.0));
	MediaElement::BufferingProgressProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "BufferingProgress", new Value (0.0), Type::DOUBLE, false, true);
	MediaElement::BufferingTimeProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "BufferingTime", new Value (TimeSpan_FromSeconds (5),Type::TIMESPAN));
	MediaElement::CanPauseProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "CanPause", new Value (false), Type::BOOL, false, true);
	MediaElement::CanSeekProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "CanSeek", new Value (false), Type::BOOL, false, true);
	MediaElement::CurrentStateProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "CurrentState", NULL, Type::STRING, false, true);
	MediaElement::IsMutedProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "IsMuted", new Value (false));
	MediaElement::MarkersProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "Markers", Type::TIMELINEMARKER_COLLECTION);
	MediaElement::NaturalDurationProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "NaturalDuration", new Value (Duration::FromSeconds (0)), Type::DURATION, false, true);
	MediaElement::NaturalVideoHeightProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "NaturalVideoHeight", new Value (0.0), Type::DOUBLE, false, true);
	MediaElement::NaturalVideoWidthProperty = DependencyProperty::RegisterFull (Type::MEDIAELEMENT, "NaturalVideoWidth", new Value (0.0), Type::DOUBLE, false, true);
	MediaElement::PositionProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "Position", Type::TIMESPAN);
	MediaElement::VolumeProperty = DependencyProperty::Register (Type::MEDIAELEMENT, "Volume", new Value (0.5));
#if SL_2_0
	MultiScaleImage::AspectRatioProperty = DependencyProperty::Register (Type::MULTISCALEIMAGE, "AspectRatio", new Value (1.0));
	MultiScaleImage::SourceProperty = DependencyProperty::Register (Type::MULTISCALEIMAGE, "Source", Type::MULTISCALETILESOURCE);
	MultiScaleImage::UseSpringsProperty = DependencyProperty::Register (Type::MULTISCALEIMAGE, "UseSprings", new Value (true));
	MultiScaleImage::ViewportOriginProperty = DependencyProperty::Register (Type::MULTISCALEIMAGE, "ViewportOrigin", new Value (Point(0,0)));
	MultiScaleImage::ViewportWidthProperty = DependencyProperty::Register (Type::MULTISCALEIMAGE, "ViewportWidth", new Value (1.0));
	MultiScaleSubImage::AspectRatioProperty = DependencyProperty::RegisterFull (Type::MULTISCALESUBIMAGE, "AspectRatio", new Value (1.0), Type::DOUBLE, false, true);
	MultiScaleSubImage::OpacityProperty = DependencyProperty::Register (Type::MULTISCALESUBIMAGE, "Opacity", Type::DOUBLE);
	MultiScaleSubImage::ViewportOriginProperty = DependencyProperty::Register (Type::MULTISCALESUBIMAGE, "ViewportOrigin", Type::POINT);
	MultiScaleSubImage::ViewportWidthProperty = DependencyProperty::Register (Type::MULTISCALESUBIMAGE, "ViewportWidth", Type::DOUBLE);
	MultiScaleSubImage::ZIndexProperty = DependencyProperty::Register (Type::MULTISCALESUBIMAGE, "ZIndex", Type::INT32);
#endif
	NameScope::NameScopeProperty = DependencyProperty::RegisterFull (Type::NAMESCOPE, "NameScope", NULL, Type::NAMESCOPE, true, false);
#if SL_2_0
	ObjectAnimationUsingKeyFrames::KeyFramesProperty = DependencyProperty::Register (Type::OBJECTANIMATIONUSINGKEYFRAMES, "KeyFrames", Type::OBJECTKEYFRAME_COLLECTION);
	ObjectKeyFrame::KeyTimeProperty = DependencyProperty::RegisterNullable (Type::OBJECTKEYFRAME, "KeyTime", Type::KEYTIME);
	ObjectKeyFrame::ValueProperty = DependencyProperty::Register (Type::OBJECTKEYFRAME, "Value", Type::DEPENDENCY_OBJECT);
#endif
	Panel::BackgroundProperty = DependencyProperty::Register (Type::PANEL, "Background", Type::BRUSH);
	Panel::ChildrenProperty = DependencyProperty::Register (Type::PANEL, "Children", Type::UIELEMENT_COLLECTION);
	Path::DataProperty = DependencyProperty::Register (Type::PATH, "Data", Type::GEOMETRY);
	PathFigure::IsClosedProperty = DependencyProperty::Register (Type::PATHFIGURE, "IsClosed", new Value (false));
#if SL_2_0
	PathFigure::IsFilledProperty = DependencyProperty::Register (Type::PATHFIGURE, "IsFilled", Type::BOOL);
#endif
	PathFigure::SegmentsProperty = DependencyProperty::Register (Type::PATHFIGURE, "Segments", Type::PATHSEGMENT_COLLECTION);
	PathFigure::StartPointProperty = DependencyProperty::Register (Type::PATHFIGURE, "StartPoint", Type::POINT);
	PathGeometry::FiguresProperty = DependencyProperty::Register (Type::PATHGEOMETRY, "Figures", Type::PATHFIGURE_COLLECTION);
	PointAnimation::ByProperty = DependencyProperty::RegisterNullable (Type::POINTANIMATION, "By", Type::POINT);
	PointAnimation::FromProperty = DependencyProperty::RegisterNullable (Type::POINTANIMATION, "From", Type::POINT);
	PointAnimation::ToProperty = DependencyProperty::RegisterNullable (Type::POINTANIMATION, "To", Type::POINT);
	PointAnimationUsingKeyFrames::KeyFramesProperty = DependencyProperty::Register (Type::POINTANIMATIONUSINGKEYFRAMES, "KeyFrames", Type::POINTKEYFRAME_COLLECTION);
	PointKeyFrame::KeyTimeProperty = DependencyProperty::RegisterNullable (Type::POINTKEYFRAME, "KeyTime", Type::KEYTIME);
	PointKeyFrame::ValueProperty = DependencyProperty::RegisterNullable (Type::POINTKEYFRAME, "Value", Type::POINT);
	PolyBezierSegment::PointsProperty = DependencyProperty::Register (Type::POLYBEZIERSEGMENT, "Points", Type::POINT_COLLECTION);
	Polygon::FillRuleProperty = DependencyProperty::Register (Type::POLYGON, "FillRule", new Value (FillRuleEvenOdd));
	Polygon::PointsProperty = DependencyProperty::Register (Type::POLYGON, "Points", Type::POINT_COLLECTION);
	Polyline::FillRuleProperty = DependencyProperty::Register (Type::POLYLINE, "FillRule", new Value (FillRuleEvenOdd));
	Polyline::PointsProperty = DependencyProperty::Register (Type::POLYLINE, "Points", Type::POINT_COLLECTION);
	PolyLineSegment::PointsProperty = DependencyProperty::Register (Type::POLYLINESEGMENT, "Points", Type::POINT_COLLECTION);
	PolyQuadraticBezierSegment::PointsProperty = DependencyProperty::Register (Type::POLYQUADRATICBEZIERSEGMENT, "Points", Type::POINT_COLLECTION);
	QuadraticBezierSegment::Point1Property = DependencyProperty::Register (Type::QUADRATICBEZIERSEGMENT, "Point1", Type::POINT);
	QuadraticBezierSegment::Point2Property = DependencyProperty::Register (Type::QUADRATICBEZIERSEGMENT, "Point2", Type::POINT);
	RadialGradientBrush::CenterProperty = DependencyProperty::Register (Type::RADIALGRADIENTBRUSH, "Center", Type::POINT);
	RadialGradientBrush::GradientOriginProperty = DependencyProperty::Register (Type::RADIALGRADIENTBRUSH, "GradientOrigin", Type::POINT);
	RadialGradientBrush::RadiusXProperty = DependencyProperty::Register (Type::RADIALGRADIENTBRUSH, "RadiusX", new Value (0.5));
	RadialGradientBrush::RadiusYProperty = DependencyProperty::Register (Type::RADIALGRADIENTBRUSH, "RadiusY", new Value (0.5));
	Rectangle::RadiusXProperty = DependencyProperty::Register (Type::RECTANGLE, "RadiusX", new Value (0.0));
	Rectangle::RadiusYProperty = DependencyProperty::Register (Type::RECTANGLE, "RadiusY", new Value (0.0));
	RectangleGeometry::RadiusXProperty = DependencyProperty::Register (Type::RECTANGLEGEOMETRY, "RadiusX", new Value (0.0));
	RectangleGeometry::RadiusYProperty = DependencyProperty::Register (Type::RECTANGLEGEOMETRY, "RadiusY", new Value (0.0));
	RectangleGeometry::RectProperty = DependencyProperty::Register (Type::RECTANGLEGEOMETRY, "Rect", Type::RECT);
	RotateTransform::AngleProperty = DependencyProperty::Register (Type::ROTATETRANSFORM, "Angle", new Value (0.0));
	RotateTransform::CenterXProperty = DependencyProperty::Register (Type::ROTATETRANSFORM, "CenterX", new Value (0.0));
	RotateTransform::CenterYProperty = DependencyProperty::Register (Type::ROTATETRANSFORM, "CenterY", new Value (0.0));
#if SL_2_0
	RowDefinition::HeightProperty = DependencyProperty::Register (Type::ROWDEFINITION, "Height", Type::GRIDLENGTH);
	RowDefinition::MaxHeightProperty = DependencyProperty::Register (Type::ROWDEFINITION, "MaxHeight", new Value (INFINITY));
	RowDefinition::MinHeightProperty = DependencyProperty::Register (Type::ROWDEFINITION, "MinHeight", new Value (0.0));
#endif
	Run::TextProperty = DependencyProperty::Register (Type::RUN, "Text", Type::STRING);
	ScaleTransform::CenterXProperty = DependencyProperty::Register (Type::SCALETRANSFORM, "CenterX", new Value (0.0));
	ScaleTransform::CenterYProperty = DependencyProperty::Register (Type::SCALETRANSFORM, "CenterY", new Value (0.0));
	ScaleTransform::ScaleXProperty = DependencyProperty::Register (Type::SCALETRANSFORM, "ScaleX", new Value (1.0));
	ScaleTransform::ScaleYProperty = DependencyProperty::Register (Type::SCALETRANSFORM, "ScaleY", new Value (1.0));
#if SL_2_0
	Setter::DependencyPropertyProperty = DependencyProperty::Register (Type::SETTER, "DependencyProperty", Type::DEPENDENCYPROPERTY);
	Setter::PropertyProperty = DependencyProperty::Register (Type::SETTER, "Property", Type::STRING);
	Setter::ValueProperty = DependencyProperty::Register (Type::SETTER, "Value", Type::OBJECT);
#endif
	Shape::FillProperty = DependencyProperty::Register (Type::SHAPE, "Fill", Type::BRUSH);
	Shape::StretchProperty = DependencyProperty::Register (Type::SHAPE, "Stretch", new Value (StretchNone));
	Shape::StrokeDashArrayProperty = DependencyProperty::Register (Type::SHAPE, "StrokeDashArray", Type::DOUBLE_COLLECTION);
	Shape::StrokeDashCapProperty = DependencyProperty::Register (Type::SHAPE, "StrokeDashCap", new Value (PenLineCapFlat));
	Shape::StrokeDashOffsetProperty = DependencyProperty::Register (Type::SHAPE, "StrokeDashOffset", new Value (0.0));
	Shape::StrokeEndLineCapProperty = DependencyProperty::Register (Type::SHAPE, "StrokeEndLineCap", new Value (PenLineCapFlat));
	Shape::StrokeLineJoinProperty = DependencyProperty::Register (Type::SHAPE, "StrokeLineJoin", new Value (PenLineJoinMiter));
	Shape::StrokeMiterLimitProperty = DependencyProperty::Register (Type::SHAPE, "StrokeMiterLimit", new Value (10.0));
	Shape::StrokeProperty = DependencyProperty::Register (Type::SHAPE, "Stroke", Type::BRUSH);
	Shape::StrokeStartLineCapProperty = DependencyProperty::Register (Type::SHAPE, "StrokeStartLineCap", new Value (PenLineCapFlat));
	Shape::StrokeThicknessProperty = DependencyProperty::Register (Type::SHAPE, "StrokeThickness", new Value (1.0));
	SkewTransform::AngleXProperty = DependencyProperty::Register (Type::SKEWTRANSFORM, "AngleX", new Value (0.0));
	SkewTransform::AngleYProperty = DependencyProperty::Register (Type::SKEWTRANSFORM, "AngleY", new Value (0.0));
	SkewTransform::CenterXProperty = DependencyProperty::Register (Type::SKEWTRANSFORM, "CenterX", new Value (0.0));
	SkewTransform::CenterYProperty = DependencyProperty::Register (Type::SKEWTRANSFORM, "CenterY", new Value (0.0));
	SolidColorBrush::ColorProperty = DependencyProperty::Register (Type::SOLIDCOLORBRUSH, "Color", new Value (Color (0x00000000)));
	SplineColorKeyFrame::KeySplineProperty = DependencyProperty::Register (Type::SPLINECOLORKEYFRAME, "KeySpline", Type::KEYSPLINE);
	SplineDoubleKeyFrame::KeySplineProperty = DependencyProperty::Register (Type::SPLINEDOUBLEKEYFRAME, "KeySpline", Type::KEYSPLINE);
	SplinePointKeyFrame::KeySplineProperty = DependencyProperty::Register (Type::SPLINEPOINTKEYFRAME, "KeySpline", Type::KEYSPLINE);
#if SL_2_0
	StackPanel::OrientationProperty = DependencyProperty::Register (Type::STACKPANEL, "Orientation", Type::INT32);
#endif
	Storyboard::TargetNameProperty = DependencyProperty::RegisterFull (Type::STORYBOARD, "TargetName", NULL, Type::STRING, true, false);
	Storyboard::TargetPropertyProperty = DependencyProperty::RegisterFull (Type::STORYBOARD, "TargetProperty", NULL, Type::STRING, true, false);
	Stroke::DrawingAttributesProperty = DependencyProperty::Register (Type::STROKE, "DrawingAttributes", Type::DRAWINGATTRIBUTES);
	Stroke::StylusPointsProperty = DependencyProperty::Register (Type::STROKE, "StylusPoints", Type::STYLUSPOINT_COLLECTION);
#if SL_2_0
	Style::SettersProperty = DependencyProperty::Register (Type::STYLE, "Setters", Type::SETTERBASE_COLLECTION);
	Style::TargetTypeProperty = DependencyProperty::Register (Type::STYLE, "TargetType", Type::MANAGED);
#endif
	StylusInfo::DeviceTypeProperty = DependencyProperty::Register (Type::STYLUSINFO, "DeviceType", new Value (TabletDeviceTypeMouse));
	StylusInfo::IsInvertedProperty = DependencyProperty::Register (Type::STYLUSINFO, "IsInverted", new Value (false));
	StylusPoint::PressureFactorProperty = DependencyProperty::Register (Type::STYLUSPOINT, "PressureFactor", new Value (0.5));
	StylusPoint::XProperty = DependencyProperty::Register (Type::STYLUSPOINT, "X", new Value (0.0));
	StylusPoint::YProperty = DependencyProperty::Register (Type::STYLUSPOINT, "Y", new Value (0.0));
	TextBlock::ActualHeightProperty = DependencyProperty::RegisterFull (Type::TEXTBLOCK, "ActualHeight", NULL, Type::DOUBLE, false, true);
	TextBlock::ActualWidthProperty = DependencyProperty::RegisterFull (Type::TEXTBLOCK, "ActualWidth", NULL, Type::DOUBLE, false, true);
	TextBlock::FontFamilyProperty = DependencyProperty::Register (Type::TEXTBLOCK, "FontFamily", new Value (TEXTBLOCK_FONT_FAMILY));
	TextBlock::FontSizeProperty = DependencyProperty::Register (Type::TEXTBLOCK, "FontSize", new Value (TEXTBLOCK_FONT_SIZE));
	TextBlock::FontStretchProperty = DependencyProperty::Register (Type::TEXTBLOCK, "FontStretch", new Value (TEXTBLOCK_FONT_STRETCH));
	TextBlock::FontStyleProperty = DependencyProperty::Register (Type::TEXTBLOCK, "FontStyle", new Value (TEXTBLOCK_FONT_STYLE));
	TextBlock::FontWeightProperty = DependencyProperty::Register (Type::TEXTBLOCK, "FontWeight", new Value (TEXTBLOCK_FONT_WEIGHT));
	TextBlock::ForegroundProperty = DependencyProperty::Register (Type::TEXTBLOCK, "Foreground", Type::BRUSH);
	TextBlock::InlinesProperty = DependencyProperty::Register (Type::TEXTBLOCK, "Inlines", Type::INLINE_COLLECTION);
#if SL_2_0
	TextBlock::LineHeightProperty = DependencyProperty::Register (Type::TEXTBLOCK, "LineHeight", new Value (NAN));
	TextBlock::LineStackingStrategyProperty = DependencyProperty::Register (Type::TEXTBLOCK, "LineStackingStrategy", new Value (LineStackingStrategyMaxHeight));
	TextBlock::PaddingProperty = DependencyProperty::Register (Type::TEXTBLOCK, "Padding", new Value (Thickness (0)));
	TextBlock::TextAlignmentProperty = DependencyProperty::Register (Type::TEXTBLOCK, "TextAlignment", new Value (TextAlignmentLeft));
#endif
	TextBlock::TextDecorationsProperty = DependencyProperty::Register (Type::TEXTBLOCK, "TextDecorations", new Value (TextDecorationsNone));
	TextBlock::TextProperty = DependencyProperty::Register (Type::TEXTBLOCK, "Text", Type::STRING);
	TextBlock::TextWrappingProperty = DependencyProperty::Register (Type::TEXTBLOCK, "TextWrapping", new Value (TextWrappingNoWrap));
#if SL_2_0
	TextBox::AcceptsReturnProperty = DependencyProperty::Register (Type::TEXTBOX, "AcceptsReturn", new Value (false));
	TextBox::HorizontalScrollBarVisibilityProperty = DependencyProperty::Register (Type::TEXTBOX, "HorizontalScrollBarVisibility", new Value (ScrollBarVisibilityHidden));
	TextBox::IsReadOnlyProperty = DependencyProperty::Register (Type::TEXTBOX, "IsReadOnly", new Value (false));
	TextBox::MaxLengthProperty = DependencyProperty::Register (Type::TEXTBOX, "MaxLength", new Value (0));
	TextBox::SelectedTextProperty = DependencyProperty::Register (Type::TEXTBOX, "SelectedText", Type::STRING);
	TextBox::SelectionBackgroundProperty = DependencyProperty::Register (Type::TEXTBOX, "SelectionBackground", new Value (0));
	TextBox::SelectionForegroundProperty = DependencyProperty::Register (Type::TEXTBOX, "SelectionForeground", new Value (0));
	TextBox::SelectionLengthProperty = DependencyProperty::Register (Type::TEXTBOX, "SelectionLength", new Value (0));
	TextBox::SelectionStartProperty = DependencyProperty::Register (Type::TEXTBOX, "SelectionStart", new Value (0));
	TextBox::TextAlignmentProperty = DependencyProperty::Register (Type::TEXTBOX, "TextAlignment", new Value (TextAlignmentLeft));
	TextBox::TextProperty = DependencyProperty::Register (Type::TEXTBOX, "Text", Type::STRING);
	TextBox::TextWrappingProperty = DependencyProperty::Register (Type::TEXTBOX, "TextWrapping", new Value (TextWrappingNoWrap));
	TextBox::VerticalScrollBarVisibilityProperty = DependencyProperty::Register (Type::TEXTBOX, "VerticalScrollBarVisibility", new Value (ScrollBarVisibilityHidden));
#endif
	TileBrush::AlignmentXProperty = DependencyProperty::Register (Type::TILEBRUSH, "AlignmentX", new Value (AlignmentXCenter));
	TileBrush::AlignmentYProperty = DependencyProperty::Register (Type::TILEBRUSH, "AlignmentY", new Value (AlignmentYCenter));
	TileBrush::StretchProperty = DependencyProperty::Register (Type::TILEBRUSH, "Stretch", new Value (StretchFill));
	Timeline::AutoReverseProperty = DependencyProperty::Register (Type::TIMELINE, "AutoReverse", new Value (false));
	Timeline::BeginTimeProperty = DependencyProperty::RegisterNullable (Type::TIMELINE, "BeginTime", Type::TIMESPAN);
	Timeline::DurationProperty = DependencyProperty::Register (Type::TIMELINE, "Duration", new Value (Duration::Automatic));
	Timeline::FillBehaviorProperty = DependencyProperty::Register (Type::TIMELINE, "FillBehavior", new Value (FillBehaviorHoldEnd));
	Timeline::RepeatBehaviorProperty = DependencyProperty::Register (Type::TIMELINE, "RepeatBehavior", new Value (RepeatBehavior ((double) 1)));
	Timeline::SpeedRatioProperty = DependencyProperty::Register (Type::TIMELINE, "SpeedRatio", new Value (1.0));
	TimelineGroup::ChildrenProperty = DependencyProperty::Register (Type::TIMELINEGROUP, "Children", Type::TIMELINE_COLLECTION);
	TimelineMarker::TextProperty = DependencyProperty::Register (Type::TIMELINEMARKER, "Text", Type::STRING);
	TimelineMarker::TimeProperty = DependencyProperty::Register (Type::TIMELINEMARKER, "Time", Type::TIMESPAN);
	TimelineMarker::TypeProperty = DependencyProperty::Register (Type::TIMELINEMARKER, "Type", Type::STRING);
	TransformGroup::ChildrenProperty = DependencyProperty::Register (Type::TRANSFORMGROUP, "Children", Type::TRANSFORM_COLLECTION);
	TranslateTransform::XProperty = DependencyProperty::Register (Type::TRANSLATETRANSFORM, "X", new Value (0.0));
	TranslateTransform::YProperty = DependencyProperty::Register (Type::TRANSLATETRANSFORM, "Y", new Value (0.0));
	UIElement::ClipProperty = DependencyProperty::Register (Type::UIELEMENT, "Clip", Type::GEOMETRY);
	UIElement::CursorProperty = DependencyProperty::Register (Type::UIELEMENT, "Cursor", new Value (MouseCursorDefault));
	UIElement::IsHitTestVisibleProperty = DependencyProperty::Register (Type::UIELEMENT, "IsHitTestVisible", new Value (true));
	UIElement::OpacityMaskProperty = DependencyProperty::Register (Type::UIELEMENT, "OpacityMask", Type::BRUSH);
	UIElement::OpacityProperty = DependencyProperty::Register (Type::UIELEMENT, "Opacity", new Value (1.0));
	UIElement::RenderTransformOriginProperty = DependencyProperty::Register (Type::UIELEMENT, "RenderTransformOrigin", new Value (Point (0,0)));
	UIElement::RenderTransformProperty = DependencyProperty::Register (Type::UIELEMENT, "RenderTransform", Type::TRANSFORM);
	UIElement::ResourcesProperty = DependencyProperty::Register (Type::UIELEMENT, "Resources", Type::RESOURCE_DICTIONARY);
	UIElement::TagProperty = DependencyProperty::Register (Type::UIELEMENT, "Tag", Type::STRING);
	UIElement::TriggersProperty = DependencyProperty::Register (Type::UIELEMENT, "Triggers", Type::TRIGGER_COLLECTION);
	UIElement::VisibilityProperty = DependencyProperty::Register (Type::UIELEMENT, "Visibility", new Value (VisibilityVisible));
#if SL_2_0
	UserControl::ContentProperty = DependencyProperty::Register (Type::USERCONTROL, "Content", Type::UIELEMENT);
#endif
	VideoBrush::SourceNameProperty = DependencyProperty::Register (Type::VIDEOBRUSH, "SourceName", new Value (""));
	VisualBrush::VisualProperty = DependencyProperty::Register (Type::VISUALBRUSH, "Visual", Type::UIELEMENT);
}

#if SL_2_0
DependencyProperty *Application::ResourcesProperty = NULL;
#endif
DependencyProperty *ArcSegment::IsLargeArcProperty = NULL;
DependencyProperty *ArcSegment::PointProperty = NULL;
DependencyProperty *ArcSegment::RotationAngleProperty = NULL;
DependencyProperty *ArcSegment::SizeProperty = NULL;
DependencyProperty *ArcSegment::SweepDirectionProperty = NULL;
#if SL_2_0
DependencyProperty *AssemblyPart::SourceProperty = NULL;
#endif
DependencyProperty *BeginStoryboard::StoryboardProperty = NULL;
DependencyProperty *BezierSegment::Point1Property = NULL;
DependencyProperty *BezierSegment::Point2Property = NULL;
DependencyProperty *BezierSegment::Point3Property = NULL;
#if SL_2_0
DependencyProperty *BitmapImage::UriSourceProperty = NULL;
DependencyProperty *Border::BackgroundProperty = NULL;
DependencyProperty *Border::BorderBrushProperty = NULL;
DependencyProperty *Border::BorderThicknessProperty = NULL;
DependencyProperty *Border::ChildProperty = NULL;
DependencyProperty *Border::CornerRadiusProperty = NULL;
DependencyProperty *Border::PaddingProperty = NULL;
#endif
DependencyProperty *Brush::ChangedProperty = NULL;
DependencyProperty *Brush::OpacityProperty = NULL;
DependencyProperty *Brush::RelativeTransformProperty = NULL;
DependencyProperty *Brush::TransformProperty = NULL;
DependencyProperty *Canvas::LeftProperty = NULL;
DependencyProperty *Canvas::TopProperty = NULL;
DependencyProperty *Canvas::ZIndexProperty = NULL;
DependencyProperty *Collection::CountProperty = NULL;
DependencyProperty *ColorAnimation::ByProperty = NULL;
DependencyProperty *ColorAnimation::FromProperty = NULL;
DependencyProperty *ColorAnimation::ToProperty = NULL;
DependencyProperty *ColorAnimationUsingKeyFrames::KeyFramesProperty = NULL;
DependencyProperty *ColorKeyFrame::KeyTimeProperty = NULL;
DependencyProperty *ColorKeyFrame::ValueProperty = NULL;
#if SL_2_0
DependencyProperty *ColumnDefinition::MaxWidthProperty = NULL;
DependencyProperty *ColumnDefinition::MinWidthProperty = NULL;
DependencyProperty *ColumnDefinition::WidthProperty = NULL;
DependencyProperty *ContentControl::ContentProperty = NULL;
DependencyProperty *ContentControl::ContentTemplateProperty = NULL;
DependencyProperty *ContentControl::IsEnabledProperty = NULL;
DependencyProperty *ContentControl::TextAlignmentProperty = NULL;
DependencyProperty *ContentControl::TextDecorationsProperty = NULL;
DependencyProperty *ContentControl::TextWrappingProperty = NULL;
DependencyProperty *Control::BackgroundProperty = NULL;
DependencyProperty *Control::BorderBrushProperty = NULL;
DependencyProperty *Control::BorderThicknessProperty = NULL;
DependencyProperty *Control::FontFamilyProperty = NULL;
DependencyProperty *Control::FontSizeProperty = NULL;
DependencyProperty *Control::FontStretchProperty = NULL;
DependencyProperty *Control::FontStyleProperty = NULL;
DependencyProperty *Control::FontWeightProperty = NULL;
DependencyProperty *Control::ForegroundProperty = NULL;
DependencyProperty *Control::HorizontalContentAlignmentProperty = NULL;
DependencyProperty *Control::IsTabStopProperty = NULL;
DependencyProperty *Control::PaddingProperty = NULL;
DependencyProperty *Control::TabIndexProperty = NULL;
DependencyProperty *Control::TabNavigationProperty = NULL;
DependencyProperty *Control::TemplateProperty = NULL;
DependencyProperty *Control::VerticalContentAlignmentProperty = NULL;
DependencyProperty *ControlTemplate::TargetTypeProperty = NULL;
#endif
DependencyProperty *DependencyObject::NameProperty = NULL;
#if SL_2_0
DependencyProperty *Deployment::EntryPointAssemblyProperty = NULL;
DependencyProperty *Deployment::EntryPointTypeProperty = NULL;
DependencyProperty *Deployment::ExternalCallersFromCrossDomainProperty = NULL;
DependencyProperty *Deployment::PartsProperty = NULL;
DependencyProperty *Deployment::RuntimeVersionProperty = NULL;
#endif
DependencyProperty *DoubleAnimation::ByProperty = NULL;
DependencyProperty *DoubleAnimation::FromProperty = NULL;
DependencyProperty *DoubleAnimation::ToProperty = NULL;
DependencyProperty *DoubleAnimationUsingKeyFrames::KeyFramesProperty = NULL;
DependencyProperty *DoubleKeyFrame::KeyTimeProperty = NULL;
DependencyProperty *DoubleKeyFrame::ValueProperty = NULL;
DependencyProperty *Downloader::DownloadProgressProperty = NULL;
DependencyProperty *Downloader::ResponseTextProperty = NULL;
DependencyProperty *Downloader::StatusProperty = NULL;
DependencyProperty *Downloader::StatusTextProperty = NULL;
DependencyProperty *Downloader::UriProperty = NULL;
DependencyProperty *DrawingAttributes::ColorProperty = NULL;
DependencyProperty *DrawingAttributes::HeightProperty = NULL;
DependencyProperty *DrawingAttributes::OutlineColorProperty = NULL;
DependencyProperty *DrawingAttributes::WidthProperty = NULL;
DependencyProperty *EllipseGeometry::CenterProperty = NULL;
DependencyProperty *EllipseGeometry::RadiusXProperty = NULL;
DependencyProperty *EllipseGeometry::RadiusYProperty = NULL;
DependencyProperty *EventTrigger::ActionsProperty = NULL;
DependencyProperty *EventTrigger::RoutedEventProperty = NULL;
#if SL_2_0
DependencyProperty *FrameworkElement::ActualHeightProperty = NULL;
DependencyProperty *FrameworkElement::ActualWidthProperty = NULL;
DependencyProperty *FrameworkElement::DataContextProperty = NULL;
#endif
DependencyProperty *FrameworkElement::HeightProperty = NULL;
#if SL_2_0
DependencyProperty *FrameworkElement::HorizontalAlignmentProperty = NULL;
DependencyProperty *FrameworkElement::LanguageProperty = NULL;
DependencyProperty *FrameworkElement::MarginProperty = NULL;
DependencyProperty *FrameworkElement::MaxHeightProperty = NULL;
DependencyProperty *FrameworkElement::MaxWidthProperty = NULL;
DependencyProperty *FrameworkElement::MinHeightProperty = NULL;
DependencyProperty *FrameworkElement::MinWidthProperty = NULL;
DependencyProperty *FrameworkElement::StyleProperty = NULL;
DependencyProperty *FrameworkElement::VerticalAlignmentProperty = NULL;
#endif
DependencyProperty *FrameworkElement::WidthProperty = NULL;
DependencyProperty *Geometry::FillRuleProperty = NULL;
DependencyProperty *Geometry::TransformProperty = NULL;
DependencyProperty *GeometryGroup::ChildrenProperty = NULL;
DependencyProperty *Glyphs::FillProperty = NULL;
DependencyProperty *Glyphs::FontRenderingEmSizeProperty = NULL;
DependencyProperty *Glyphs::FontUriProperty = NULL;
DependencyProperty *Glyphs::IndicesProperty = NULL;
DependencyProperty *Glyphs::OriginXProperty = NULL;
DependencyProperty *Glyphs::OriginYProperty = NULL;
DependencyProperty *Glyphs::StyleSimulationsProperty = NULL;
DependencyProperty *Glyphs::UnicodeStringProperty = NULL;
DependencyProperty *GradientBrush::ColorInterpolationModeProperty = NULL;
DependencyProperty *GradientBrush::GradientStopsProperty = NULL;
DependencyProperty *GradientBrush::MappingModeProperty = NULL;
DependencyProperty *GradientBrush::SpreadMethodProperty = NULL;
DependencyProperty *GradientStop::ColorProperty = NULL;
DependencyProperty *GradientStop::OffsetProperty = NULL;
#if SL_2_0
DependencyProperty *Grid::ColumnDefinitionsProperty = NULL;
DependencyProperty *Grid::ColumnProperty = NULL;
DependencyProperty *Grid::ColumnSpanProperty = NULL;
DependencyProperty *Grid::RowDefinitionsProperty = NULL;
DependencyProperty *Grid::RowProperty = NULL;
DependencyProperty *Grid::RowSpanProperty = NULL;
DependencyProperty *Grid::ShowGridLinesProperty = NULL;
#endif
DependencyProperty *ImageBrush::DownloadProgressProperty = NULL;
DependencyProperty *ImageBrush::ImageSourceProperty = NULL;
DependencyProperty *InkPresenter::StrokesProperty = NULL;
DependencyProperty *Inline::FontFamilyProperty = NULL;
DependencyProperty *Inline::FontSizeProperty = NULL;
DependencyProperty *Inline::FontStretchProperty = NULL;
DependencyProperty *Inline::FontStyleProperty = NULL;
DependencyProperty *Inline::FontWeightProperty = NULL;
DependencyProperty *Inline::ForegroundProperty = NULL;
#if SL_2_0
DependencyProperty *Inline::LanguageProperty = NULL;
#endif
DependencyProperty *Inline::TextDecorationsProperty = NULL;
DependencyProperty *KeySpline::ControlPoint1Property = NULL;
DependencyProperty *KeySpline::ControlPoint2Property = NULL;
DependencyProperty *Line::X1Property = NULL;
DependencyProperty *Line::X2Property = NULL;
DependencyProperty *Line::Y1Property = NULL;
DependencyProperty *Line::Y2Property = NULL;
DependencyProperty *LinearGradientBrush::EndPointProperty = NULL;
DependencyProperty *LinearGradientBrush::StartPointProperty = NULL;
DependencyProperty *LineGeometry::EndPointProperty = NULL;
DependencyProperty *LineGeometry::StartPointProperty = NULL;
DependencyProperty *LineSegment::PointProperty = NULL;
DependencyProperty *Matrix::M11Property = NULL;
DependencyProperty *Matrix::M12Property = NULL;
DependencyProperty *Matrix::M21Property = NULL;
DependencyProperty *Matrix::M22Property = NULL;
DependencyProperty *Matrix::OffsetXProperty = NULL;
DependencyProperty *Matrix::OffsetYProperty = NULL;
DependencyProperty *MatrixTransform::MatrixProperty = NULL;
DependencyProperty *MediaAttribute::ValueProperty = NULL;
DependencyProperty *MediaBase::DownloadProgressProperty = NULL;
DependencyProperty *MediaBase::SourceProperty = NULL;
DependencyProperty *MediaBase::StretchProperty = NULL;
DependencyProperty *MediaElement::AttributesProperty = NULL;
DependencyProperty *MediaElement::AudioStreamCountProperty = NULL;
DependencyProperty *MediaElement::AudioStreamIndexProperty = NULL;
DependencyProperty *MediaElement::AutoPlayProperty = NULL;
DependencyProperty *MediaElement::BalanceProperty = NULL;
DependencyProperty *MediaElement::BufferingProgressProperty = NULL;
DependencyProperty *MediaElement::BufferingTimeProperty = NULL;
DependencyProperty *MediaElement::CanPauseProperty = NULL;
DependencyProperty *MediaElement::CanSeekProperty = NULL;
DependencyProperty *MediaElement::CurrentStateProperty = NULL;
DependencyProperty *MediaElement::IsMutedProperty = NULL;
DependencyProperty *MediaElement::MarkersProperty = NULL;
DependencyProperty *MediaElement::NaturalDurationProperty = NULL;
DependencyProperty *MediaElement::NaturalVideoHeightProperty = NULL;
DependencyProperty *MediaElement::NaturalVideoWidthProperty = NULL;
DependencyProperty *MediaElement::PositionProperty = NULL;
DependencyProperty *MediaElement::VolumeProperty = NULL;
#if SL_2_0
DependencyProperty *MultiScaleImage::AspectRatioProperty = NULL;
DependencyProperty *MultiScaleImage::SourceProperty = NULL;
DependencyProperty *MultiScaleImage::UseSpringsProperty = NULL;
DependencyProperty *MultiScaleImage::ViewportOriginProperty = NULL;
DependencyProperty *MultiScaleImage::ViewportWidthProperty = NULL;
DependencyProperty *MultiScaleSubImage::AspectRatioProperty = NULL;
DependencyProperty *MultiScaleSubImage::OpacityProperty = NULL;
DependencyProperty *MultiScaleSubImage::ViewportOriginProperty = NULL;
DependencyProperty *MultiScaleSubImage::ViewportWidthProperty = NULL;
DependencyProperty *MultiScaleSubImage::ZIndexProperty = NULL;
#endif
DependencyProperty *NameScope::NameScopeProperty = NULL;
#if SL_2_0
DependencyProperty *ObjectAnimationUsingKeyFrames::KeyFramesProperty = NULL;
DependencyProperty *ObjectKeyFrame::KeyTimeProperty = NULL;
DependencyProperty *ObjectKeyFrame::ValueProperty = NULL;
#endif
DependencyProperty *Panel::BackgroundProperty = NULL;
DependencyProperty *Panel::ChildrenProperty = NULL;
DependencyProperty *Path::DataProperty = NULL;
DependencyProperty *PathFigure::IsClosedProperty = NULL;
#if SL_2_0
DependencyProperty *PathFigure::IsFilledProperty = NULL;
#endif
DependencyProperty *PathFigure::SegmentsProperty = NULL;
DependencyProperty *PathFigure::StartPointProperty = NULL;
DependencyProperty *PathGeometry::FiguresProperty = NULL;
DependencyProperty *PointAnimation::ByProperty = NULL;
DependencyProperty *PointAnimation::FromProperty = NULL;
DependencyProperty *PointAnimation::ToProperty = NULL;
DependencyProperty *PointAnimationUsingKeyFrames::KeyFramesProperty = NULL;
DependencyProperty *PointKeyFrame::KeyTimeProperty = NULL;
DependencyProperty *PointKeyFrame::ValueProperty = NULL;
DependencyProperty *PolyBezierSegment::PointsProperty = NULL;
DependencyProperty *Polygon::FillRuleProperty = NULL;
DependencyProperty *Polygon::PointsProperty = NULL;
DependencyProperty *Polyline::FillRuleProperty = NULL;
DependencyProperty *Polyline::PointsProperty = NULL;
DependencyProperty *PolyLineSegment::PointsProperty = NULL;
DependencyProperty *PolyQuadraticBezierSegment::PointsProperty = NULL;
DependencyProperty *QuadraticBezierSegment::Point1Property = NULL;
DependencyProperty *QuadraticBezierSegment::Point2Property = NULL;
DependencyProperty *RadialGradientBrush::CenterProperty = NULL;
DependencyProperty *RadialGradientBrush::GradientOriginProperty = NULL;
DependencyProperty *RadialGradientBrush::RadiusXProperty = NULL;
DependencyProperty *RadialGradientBrush::RadiusYProperty = NULL;
DependencyProperty *Rectangle::RadiusXProperty = NULL;
DependencyProperty *Rectangle::RadiusYProperty = NULL;
DependencyProperty *RectangleGeometry::RadiusXProperty = NULL;
DependencyProperty *RectangleGeometry::RadiusYProperty = NULL;
DependencyProperty *RectangleGeometry::RectProperty = NULL;
DependencyProperty *RotateTransform::AngleProperty = NULL;
DependencyProperty *RotateTransform::CenterXProperty = NULL;
DependencyProperty *RotateTransform::CenterYProperty = NULL;
#if SL_2_0
DependencyProperty *RowDefinition::HeightProperty = NULL;
DependencyProperty *RowDefinition::MaxHeightProperty = NULL;
DependencyProperty *RowDefinition::MinHeightProperty = NULL;
#endif
DependencyProperty *Run::TextProperty = NULL;
DependencyProperty *ScaleTransform::CenterXProperty = NULL;
DependencyProperty *ScaleTransform::CenterYProperty = NULL;
DependencyProperty *ScaleTransform::ScaleXProperty = NULL;
DependencyProperty *ScaleTransform::ScaleYProperty = NULL;
#if SL_2_0
DependencyProperty *Setter::DependencyPropertyProperty = NULL;
DependencyProperty *Setter::PropertyProperty = NULL;
DependencyProperty *Setter::ValueProperty = NULL;
#endif
DependencyProperty *Shape::FillProperty = NULL;
DependencyProperty *Shape::StretchProperty = NULL;
DependencyProperty *Shape::StrokeDashArrayProperty = NULL;
DependencyProperty *Shape::StrokeDashCapProperty = NULL;
DependencyProperty *Shape::StrokeDashOffsetProperty = NULL;
DependencyProperty *Shape::StrokeEndLineCapProperty = NULL;
DependencyProperty *Shape::StrokeLineJoinProperty = NULL;
DependencyProperty *Shape::StrokeMiterLimitProperty = NULL;
DependencyProperty *Shape::StrokeProperty = NULL;
DependencyProperty *Shape::StrokeStartLineCapProperty = NULL;
DependencyProperty *Shape::StrokeThicknessProperty = NULL;
DependencyProperty *SkewTransform::AngleXProperty = NULL;
DependencyProperty *SkewTransform::AngleYProperty = NULL;
DependencyProperty *SkewTransform::CenterXProperty = NULL;
DependencyProperty *SkewTransform::CenterYProperty = NULL;
DependencyProperty *SolidColorBrush::ColorProperty = NULL;
DependencyProperty *SplineColorKeyFrame::KeySplineProperty = NULL;
DependencyProperty *SplineDoubleKeyFrame::KeySplineProperty = NULL;
DependencyProperty *SplinePointKeyFrame::KeySplineProperty = NULL;
#if SL_2_0
DependencyProperty *StackPanel::OrientationProperty = NULL;
#endif
DependencyProperty *Storyboard::TargetNameProperty = NULL;
DependencyProperty *Storyboard::TargetPropertyProperty = NULL;
DependencyProperty *Stroke::DrawingAttributesProperty = NULL;
DependencyProperty *Stroke::StylusPointsProperty = NULL;
#if SL_2_0
DependencyProperty *Style::SettersProperty = NULL;
DependencyProperty *Style::TargetTypeProperty = NULL;
#endif
DependencyProperty *StylusInfo::DeviceTypeProperty = NULL;
DependencyProperty *StylusInfo::IsInvertedProperty = NULL;
DependencyProperty *StylusPoint::PressureFactorProperty = NULL;
DependencyProperty *StylusPoint::XProperty = NULL;
DependencyProperty *StylusPoint::YProperty = NULL;
DependencyProperty *TextBlock::ActualHeightProperty = NULL;
DependencyProperty *TextBlock::ActualWidthProperty = NULL;
DependencyProperty *TextBlock::FontFamilyProperty = NULL;
DependencyProperty *TextBlock::FontSizeProperty = NULL;
DependencyProperty *TextBlock::FontStretchProperty = NULL;
DependencyProperty *TextBlock::FontStyleProperty = NULL;
DependencyProperty *TextBlock::FontWeightProperty = NULL;
DependencyProperty *TextBlock::ForegroundProperty = NULL;
DependencyProperty *TextBlock::InlinesProperty = NULL;
#if SL_2_0
DependencyProperty *TextBlock::LineHeightProperty = NULL;
DependencyProperty *TextBlock::LineStackingStrategyProperty = NULL;
DependencyProperty *TextBlock::PaddingProperty = NULL;
DependencyProperty *TextBlock::TextAlignmentProperty = NULL;
#endif
DependencyProperty *TextBlock::TextDecorationsProperty = NULL;
DependencyProperty *TextBlock::TextProperty = NULL;
DependencyProperty *TextBlock::TextWrappingProperty = NULL;
#if SL_2_0
DependencyProperty *TextBox::AcceptsReturnProperty = NULL;
DependencyProperty *TextBox::HorizontalScrollBarVisibilityProperty = NULL;
DependencyProperty *TextBox::IsReadOnlyProperty = NULL;
DependencyProperty *TextBox::MaxLengthProperty = NULL;
DependencyProperty *TextBox::SelectedTextProperty = NULL;
DependencyProperty *TextBox::SelectionBackgroundProperty = NULL;
DependencyProperty *TextBox::SelectionForegroundProperty = NULL;
DependencyProperty *TextBox::SelectionLengthProperty = NULL;
DependencyProperty *TextBox::SelectionStartProperty = NULL;
DependencyProperty *TextBox::TextAlignmentProperty = NULL;
DependencyProperty *TextBox::TextProperty = NULL;
DependencyProperty *TextBox::TextWrappingProperty = NULL;
DependencyProperty *TextBox::VerticalScrollBarVisibilityProperty = NULL;
#endif
DependencyProperty *TileBrush::AlignmentXProperty = NULL;
DependencyProperty *TileBrush::AlignmentYProperty = NULL;
DependencyProperty *TileBrush::StretchProperty = NULL;
DependencyProperty *Timeline::AutoReverseProperty = NULL;
DependencyProperty *Timeline::BeginTimeProperty = NULL;
DependencyProperty *Timeline::DurationProperty = NULL;
DependencyProperty *Timeline::FillBehaviorProperty = NULL;
DependencyProperty *Timeline::RepeatBehaviorProperty = NULL;
DependencyProperty *Timeline::SpeedRatioProperty = NULL;
DependencyProperty *TimelineGroup::ChildrenProperty = NULL;
DependencyProperty *TimelineMarker::TextProperty = NULL;
DependencyProperty *TimelineMarker::TimeProperty = NULL;
DependencyProperty *TimelineMarker::TypeProperty = NULL;
DependencyProperty *TransformGroup::ChildrenProperty = NULL;
DependencyProperty *TranslateTransform::XProperty = NULL;
DependencyProperty *TranslateTransform::YProperty = NULL;
DependencyProperty *UIElement::ClipProperty = NULL;
DependencyProperty *UIElement::CursorProperty = NULL;
DependencyProperty *UIElement::IsHitTestVisibleProperty = NULL;
DependencyProperty *UIElement::OpacityMaskProperty = NULL;
DependencyProperty *UIElement::OpacityProperty = NULL;
DependencyProperty *UIElement::RenderTransformOriginProperty = NULL;
DependencyProperty *UIElement::RenderTransformProperty = NULL;
DependencyProperty *UIElement::ResourcesProperty = NULL;
DependencyProperty *UIElement::TagProperty = NULL;
DependencyProperty *UIElement::TriggersProperty = NULL;
DependencyProperty *UIElement::VisibilityProperty = NULL;
#if SL_2_0
DependencyProperty *UserControl::ContentProperty = NULL;
#endif
DependencyProperty *VideoBrush::SourceNameProperty = NULL;
DependencyProperty *VisualBrush::VisualProperty = NULL;

bool
ArcSegment::GetIsLargeArc ()
{
	Value *value = GetValue (ArcSegment::IsLargeArcProperty);
	return value->AsBool ();
}

void
ArcSegment::SetIsLargeArc (bool value)
{
	SetValue (ArcSegment::IsLargeArcProperty, Value (value));
}

Point *
ArcSegment::GetPoint ()
{
	Value *value = GetValue (ArcSegment::PointProperty);
	return value ? value->AsPoint () : NULL;
}

void
ArcSegment::SetPoint (Point * value)
{
	if (!value) return;
	SetValue (ArcSegment::PointProperty, Value (*value));
}

double
ArcSegment::GetRotationAngle ()
{
	Value *value = GetValue (ArcSegment::RotationAngleProperty);
	return value->AsDouble ();
}

void
ArcSegment::SetRotationAngle (double value)
{
	SetValue (ArcSegment::RotationAngleProperty, Value (value));
}

Point *
ArcSegment::GetSize ()
{
	Value *value = GetValue (ArcSegment::SizeProperty);
	return value ? value->AsPoint () : NULL;
}

void
ArcSegment::SetSize (Point * value)
{
	if (!value) return;
	SetValue (ArcSegment::SizeProperty, Value (*value));
}

SweepDirection
ArcSegment::GetSweepDirection ()
{
	Value *value = GetValue (ArcSegment::SweepDirectionProperty);
	return (SweepDirection) value->AsInt32 ();
}

void
ArcSegment::SetSweepDirection (SweepDirection value)
{
	SetValue (ArcSegment::SweepDirectionProperty, Value (value));
}

Storyboard *
BeginStoryboard::GetStoryboard ()
{
	Value *value = GetValue (BeginStoryboard::StoryboardProperty);
	return value ? value->AsStoryboard () : NULL;
}

void
BeginStoryboard::SetStoryboard (Storyboard * value)
{
	SetValue (BeginStoryboard::StoryboardProperty, Value (value));
}

Point *
BezierSegment::GetPoint1 ()
{
	Value *value = GetValue (BezierSegment::Point1Property);
	return value ? value->AsPoint () : NULL;
}

void
BezierSegment::SetPoint1 (Point * value)
{
	if (!value) return;
	SetValue (BezierSegment::Point1Property, Value (*value));
}

Point *
BezierSegment::GetPoint2 ()
{
	Value *value = GetValue (BezierSegment::Point2Property);
	return value ? value->AsPoint () : NULL;
}

void
BezierSegment::SetPoint2 (Point * value)
{
	if (!value) return;
	SetValue (BezierSegment::Point2Property, Value (*value));
}

Point *
BezierSegment::GetPoint3 ()
{
	Value *value = GetValue (BezierSegment::Point3Property);
	return value ? value->AsPoint () : NULL;
}

void
BezierSegment::SetPoint3 (Point * value)
{
	if (!value) return;
	SetValue (BezierSegment::Point3Property, Value (*value));
}

#if SL_2_0
Brush *
Border::GetBackground ()
{
	Value *value = GetValue (Border::BackgroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
Border::SetBackground (Brush * value)
{
	SetValue (Border::BackgroundProperty, Value (value));
}

#endif
#if SL_2_0
Brush *
Border::GetBorderBrush ()
{
	Value *value = GetValue (Border::BorderBrushProperty);
	return value ? value->AsBrush () : NULL;
}

void
Border::SetBorderBrush (Brush * value)
{
	SetValue (Border::BorderBrushProperty, Value (value));
}

#endif
#if SL_2_0
Thickness *
Border::GetBorderThickness ()
{
	Value *value = GetValue (Border::BorderThicknessProperty);
	return value ? value->AsThickness () : NULL;
}

void
Border::SetBorderThickness (Thickness * value)
{
	if (!value) return;
	SetValue (Border::BorderThicknessProperty, Value (*value));
}

#endif
#if SL_2_0
UIElement *
Border::GetChild ()
{
	Value *value = GetValue (Border::ChildProperty);
	return value ? value->AsUIElement () : NULL;
}

void
Border::SetChild (UIElement * value)
{
	SetValue (Border::ChildProperty, Value (value));
}

#endif
#if SL_2_0
CornerRadius *
Border::GetCornerRadius ()
{
	Value *value = GetValue (Border::CornerRadiusProperty);
	return value ? value->AsCornerRadius () : NULL;
}

void
Border::SetCornerRadius (CornerRadius * value)
{
	if (!value) return;
	SetValue (Border::CornerRadiusProperty, Value (*value));
}

#endif
#if SL_2_0
Thickness *
Border::GetPadding ()
{
	Value *value = GetValue (Border::PaddingProperty);
	return value ? value->AsThickness () : NULL;
}

void
Border::SetPadding (Thickness * value)
{
	if (!value) return;
	SetValue (Border::PaddingProperty, Value (*value));
}

#endif
double
Brush::GetOpacity ()
{
	Value *value = GetValue (Brush::OpacityProperty);
	return value->AsDouble ();
}

void
Brush::SetOpacity (double value)
{
	SetValue (Brush::OpacityProperty, Value (value));
}

Transform *
Brush::GetRelativeTransform ()
{
	Value *value = GetValue (Brush::RelativeTransformProperty);
	return value ? value->AsTransform () : NULL;
}

void
Brush::SetRelativeTransform (Transform * value)
{
	SetValue (Brush::RelativeTransformProperty, Value (value));
}

Transform *
Brush::GetTransform ()
{
	Value *value = GetValue (Brush::TransformProperty);
	return value ? value->AsTransform () : NULL;
}

void
Brush::SetTransform (Transform * value)
{
	SetValue (Brush::TransformProperty, Value (value));
}

double
Canvas::GetLeft (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Canvas::LeftProperty);
	if (!value) value = Canvas::LeftProperty->GetDefaultValue();
	return value->AsDouble ();
}

void
Canvas::SetLeft (DependencyObject *obj, double value)
{
	if (!obj) return;
	obj->SetValue (Canvas::LeftProperty, Value (value));
}

double
Canvas::GetTop (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Canvas::TopProperty);
	if (!value) value = Canvas::TopProperty->GetDefaultValue();
	return value->AsDouble ();
}

void
Canvas::SetTop (DependencyObject *obj, double value)
{
	if (!obj) return;
	obj->SetValue (Canvas::TopProperty, Value (value));
}

gint32
Canvas::GetZIndex (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Canvas::ZIndexProperty);
	if (!value) value = Canvas::ZIndexProperty->GetDefaultValue();
	return value->AsInt32 ();
}

void
Canvas::SetZIndex (DependencyObject *obj, gint32 value)
{
	if (!obj) return;
	obj->SetValue (Canvas::ZIndexProperty, Value (value));
}

gint32
Collection::GetCount ()
{
	Value *value = GetValue (Collection::CountProperty);
	return value->AsInt32 ();
}

void
Collection::SetCount (gint32 value)
{
	SetValue (Collection::CountProperty, Value (value));
}

Color *
ColorAnimation::GetBy ()
{
	Value *value = GetValue (ColorAnimation::ByProperty);
	return value ? value->AsColor () : NULL;
}

void
ColorAnimation::SetBy (Color value)
{
	SetValue (ColorAnimation::ByProperty, Value (value));
}

void
ColorAnimation::SetBy (Color * value)
{
	if (!value)
		SetValue (ColorAnimation::ByProperty, NULL);
	else
		SetValue (ColorAnimation::ByProperty, Value (*value));
}

Color *
ColorAnimation::GetFrom ()
{
	Value *value = GetValue (ColorAnimation::FromProperty);
	return value ? value->AsColor () : NULL;
}

void
ColorAnimation::SetFrom (Color value)
{
	SetValue (ColorAnimation::FromProperty, Value (value));
}

void
ColorAnimation::SetFrom (Color * value)
{
	if (!value)
		SetValue (ColorAnimation::FromProperty, NULL);
	else
		SetValue (ColorAnimation::FromProperty, Value (*value));
}

Color *
ColorAnimation::GetTo ()
{
	Value *value = GetValue (ColorAnimation::ToProperty);
	return value ? value->AsColor () : NULL;
}

void
ColorAnimation::SetTo (Color value)
{
	SetValue (ColorAnimation::ToProperty, Value (value));
}

void
ColorAnimation::SetTo (Color * value)
{
	if (!value)
		SetValue (ColorAnimation::ToProperty, NULL);
	else
		SetValue (ColorAnimation::ToProperty, Value (*value));
}

ColorKeyFrameCollection *
ColorAnimationUsingKeyFrames::GetKeyFrames ()
{
	Value *value = GetValue (ColorAnimationUsingKeyFrames::KeyFramesProperty);
	return value ? value->AsColorKeyFrameCollection () : NULL;
}

void
ColorAnimationUsingKeyFrames::SetKeyFrames (ColorKeyFrameCollection * value)
{
	SetValue (ColorAnimationUsingKeyFrames::KeyFramesProperty, Value (value));
}

KeyTime *
ColorKeyFrame::GetKeyTime ()
{
	Value *value = DependencyObject::GetValue (ColorKeyFrame::KeyTimeProperty);
	return value ? value->AsKeyTime () : NULL;
}

void
ColorKeyFrame::SetKeyTime (KeyTime value)
{
	DependencyObject::SetValue (ColorKeyFrame::KeyTimeProperty, Value (value));
}

void
ColorKeyFrame::SetKeyTime (KeyTime * value)
{
	if (!value)
		DependencyObject::SetValue (ColorKeyFrame::KeyTimeProperty, NULL);
	else
		DependencyObject::SetValue (ColorKeyFrame::KeyTimeProperty, Value (*value));
}

Color *
ColorKeyFrame::GetValue ()
{
	Value *value = DependencyObject::GetValue (ColorKeyFrame::ValueProperty);
	return value ? value->AsColor () : NULL;
}

void
ColorKeyFrame::SetValue (Color value)
{
	DependencyObject::SetValue (ColorKeyFrame::ValueProperty, Value (value));
}

void
ColorKeyFrame::SetValue (Color * value)
{
	if (!value)
		DependencyObject::SetValue (ColorKeyFrame::ValueProperty, NULL);
	else
		DependencyObject::SetValue (ColorKeyFrame::ValueProperty, Value (*value));
}

#if SL_2_0
double
ColumnDefinition::GetMaxWidth ()
{
	Value *value = GetValue (ColumnDefinition::MaxWidthProperty);
	return value->AsDouble ();
}

void
ColumnDefinition::SetMaxWidth (double value)
{
	SetValue (ColumnDefinition::MaxWidthProperty, Value (value));
}

#endif
#if SL_2_0
double
ColumnDefinition::GetMinWidth ()
{
	Value *value = GetValue (ColumnDefinition::MinWidthProperty);
	return value->AsDouble ();
}

void
ColumnDefinition::SetMinWidth (double value)
{
	SetValue (ColumnDefinition::MinWidthProperty, Value (value));
}

#endif
#if SL_2_0
GridLength *
ColumnDefinition::GetWidth ()
{
	Value *value = GetValue (ColumnDefinition::WidthProperty);
	return value ? value->AsGridLength () : NULL;
}

void
ColumnDefinition::SetWidth (GridLength * value)
{
	if (!value) return;
	SetValue (ColumnDefinition::WidthProperty, Value (*value));
}

#endif
#if SL_2_0
Brush *
Control::GetBackground ()
{
	Value *value = GetValue (Control::BackgroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
Control::SetBackground (Brush * value)
{
	SetValue (Control::BackgroundProperty, Value (value));
}

#endif
#if SL_2_0
Brush *
Control::GetBorderBrush ()
{
	Value *value = GetValue (Control::BorderBrushProperty);
	return value ? value->AsBrush () : NULL;
}

void
Control::SetBorderBrush (Brush * value)
{
	SetValue (Control::BorderBrushProperty, Value (value));
}

#endif
#if SL_2_0
Thickness *
Control::GetBorderThickness ()
{
	Value *value = GetValue (Control::BorderThicknessProperty);
	return value ? value->AsThickness () : NULL;
}

void
Control::SetBorderThickness (Thickness * value)
{
	if (!value) return;
	SetValue (Control::BorderThicknessProperty, Value (*value));
}

#endif
#if SL_2_0
const char *
Control::GetFontFamily ()
{
	Value *value = GetValue (Control::FontFamilyProperty);
	return value ? value->AsString () : NULL;
}

void
Control::SetFontFamily (const char * value)
{
	SetValue (Control::FontFamilyProperty, Value (value));
}

#endif
#if SL_2_0
double
Control::GetFontSize ()
{
	Value *value = GetValue (Control::FontSizeProperty);
	return value->AsDouble ();
}

void
Control::SetFontSize (double value)
{
	SetValue (Control::FontSizeProperty, Value (value));
}

#endif
#if SL_2_0
FontStretches
Control::GetFontStretch ()
{
	Value *value = GetValue (Control::FontStretchProperty);
	return (FontStretches) value->AsInt32 ();
}

void
Control::SetFontStretch (FontStretches value)
{
	SetValue (Control::FontStretchProperty, Value (value));
}

#endif
#if SL_2_0
FontStyles
Control::GetFontStyle ()
{
	Value *value = GetValue (Control::FontStyleProperty);
	return (FontStyles) value->AsInt32 ();
}

void
Control::SetFontStyle (FontStyles value)
{
	SetValue (Control::FontStyleProperty, Value (value));
}

#endif
#if SL_2_0
FontWeights
Control::GetFontWeight ()
{
	Value *value = GetValue (Control::FontWeightProperty);
	return (FontWeights) value->AsInt32 ();
}

void
Control::SetFontWeight (FontWeights value)
{
	SetValue (Control::FontWeightProperty, Value (value));
}

#endif
#if SL_2_0
Brush *
Control::GetForeground ()
{
	Value *value = GetValue (Control::ForegroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
Control::SetForeground (Brush * value)
{
	SetValue (Control::ForegroundProperty, Value (value));
}

#endif
#if SL_2_0
HorizontalAlignment
Control::GetHorizontalContentAlignment ()
{
	Value *value = GetValue (Control::HorizontalContentAlignmentProperty);
	return (HorizontalAlignment) value->AsInt32 ();
}

void
Control::SetHorizontalContentAlignment (HorizontalAlignment value)
{
	SetValue (Control::HorizontalContentAlignmentProperty, Value (value));
}

#endif
#if SL_2_0
bool
Control::GetIsTabStop ()
{
	Value *value = GetValue (Control::IsTabStopProperty);
	return value->AsBool ();
}

void
Control::SetIsTabStop (bool value)
{
	SetValue (Control::IsTabStopProperty, Value (value));
}

#endif
#if SL_2_0
Thickness *
Control::GetPadding ()
{
	Value *value = GetValue (Control::PaddingProperty);
	return value ? value->AsThickness () : NULL;
}

void
Control::SetPadding (Thickness * value)
{
	if (!value) return;
	SetValue (Control::PaddingProperty, Value (*value));
}

#endif
#if SL_2_0
gint32
Control::GetTabIndex ()
{
	Value *value = GetValue (Control::TabIndexProperty);
	return value->AsInt32 ();
}

void
Control::SetTabIndex (gint32 value)
{
	SetValue (Control::TabIndexProperty, Value (value));
}

#endif
#if SL_2_0
KeyboardNavigationMode
Control::GetTabNavigation ()
{
	Value *value = GetValue (Control::TabNavigationProperty);
	return (KeyboardNavigationMode) value->AsInt32 ();
}

void
Control::SetTabNavigation (KeyboardNavigationMode value)
{
	SetValue (Control::TabNavigationProperty, Value (value));
}

#endif
#if SL_2_0
ControlTemplate *
Control::GetTemplate ()
{
	Value *value = GetValue (Control::TemplateProperty);
	return value ? value->AsControlTemplate () : NULL;
}

void
Control::SetTemplate (ControlTemplate * value)
{
	SetValue (Control::TemplateProperty, Value (value));
}

#endif
#if SL_2_0
VerticalAlignment
Control::GetVerticalContentAlignment ()
{
	Value *value = GetValue (Control::VerticalContentAlignmentProperty);
	return (VerticalAlignment) value->AsInt32 ();
}

void
Control::SetVerticalContentAlignment (VerticalAlignment value)
{
	SetValue (Control::VerticalContentAlignmentProperty, Value (value));
}

#endif
const char *
DependencyObject::GetName ()
{
	Value *value = GetValue (DependencyObject::NameProperty);
	return value ? value->AsString () : NULL;
}

void
DependencyObject::SetName (const char * value)
{
	SetValue (DependencyObject::NameProperty, Value (value));
}

double *
DoubleAnimation::GetBy ()
{
	Value *value = GetValue (DoubleAnimation::ByProperty);
	return value ? value->AsNullableDouble () : NULL;
}

void
DoubleAnimation::SetBy (double value)
{
	SetValue (DoubleAnimation::ByProperty, Value (value));
}

void
DoubleAnimation::SetBy (double * value)
{
	if (!value)
		SetValue (DoubleAnimation::ByProperty, NULL);
	else
		SetValue (DoubleAnimation::ByProperty, Value (*value));
}

double *
DoubleAnimation::GetFrom ()
{
	Value *value = GetValue (DoubleAnimation::FromProperty);
	return value ? value->AsNullableDouble () : NULL;
}

void
DoubleAnimation::SetFrom (double value)
{
	SetValue (DoubleAnimation::FromProperty, Value (value));
}

void
DoubleAnimation::SetFrom (double * value)
{
	if (!value)
		SetValue (DoubleAnimation::FromProperty, NULL);
	else
		SetValue (DoubleAnimation::FromProperty, Value (*value));
}

double *
DoubleAnimation::GetTo ()
{
	Value *value = GetValue (DoubleAnimation::ToProperty);
	return value ? value->AsNullableDouble () : NULL;
}

void
DoubleAnimation::SetTo (double value)
{
	SetValue (DoubleAnimation::ToProperty, Value (value));
}

void
DoubleAnimation::SetTo (double * value)
{
	if (!value)
		SetValue (DoubleAnimation::ToProperty, NULL);
	else
		SetValue (DoubleAnimation::ToProperty, Value (*value));
}

DoubleKeyFrameCollection *
DoubleAnimationUsingKeyFrames::GetKeyFrames ()
{
	Value *value = GetValue (DoubleAnimationUsingKeyFrames::KeyFramesProperty);
	return value ? value->AsDoubleKeyFrameCollection () : NULL;
}

void
DoubleAnimationUsingKeyFrames::SetKeyFrames (DoubleKeyFrameCollection * value)
{
	SetValue (DoubleAnimationUsingKeyFrames::KeyFramesProperty, Value (value));
}

KeyTime *
DoubleKeyFrame::GetKeyTime ()
{
	Value *value = DependencyObject::GetValue (DoubleKeyFrame::KeyTimeProperty);
	return value ? value->AsKeyTime () : NULL;
}

void
DoubleKeyFrame::SetKeyTime (KeyTime value)
{
	DependencyObject::SetValue (DoubleKeyFrame::KeyTimeProperty, Value (value));
}

void
DoubleKeyFrame::SetKeyTime (KeyTime * value)
{
	if (!value)
		DependencyObject::SetValue (DoubleKeyFrame::KeyTimeProperty, NULL);
	else
		DependencyObject::SetValue (DoubleKeyFrame::KeyTimeProperty, Value (*value));
}

double *
DoubleKeyFrame::GetValue ()
{
	Value *value = DependencyObject::GetValue (DoubleKeyFrame::ValueProperty);
	return value ? value->AsNullableDouble () : NULL;
}

void
DoubleKeyFrame::SetValue (double value)
{
	DependencyObject::SetValue (DoubleKeyFrame::ValueProperty, Value (value));
}

void
DoubleKeyFrame::SetValue (double * value)
{
	if (!value)
		DependencyObject::SetValue (DoubleKeyFrame::ValueProperty, NULL);
	else
		DependencyObject::SetValue (DoubleKeyFrame::ValueProperty, Value (*value));
}

Color *
DrawingAttributes::GetColor ()
{
	Value *value = GetValue (DrawingAttributes::ColorProperty);
	return value ? value->AsColor () : NULL;
}

void
DrawingAttributes::SetColor (Color * value)
{
	if (!value) return;
	SetValue (DrawingAttributes::ColorProperty, Value (*value));
}

double
DrawingAttributes::GetHeight ()
{
	Value *value = GetValue (DrawingAttributes::HeightProperty);
	return value->AsDouble ();
}

void
DrawingAttributes::SetHeight (double value)
{
	SetValue (DrawingAttributes::HeightProperty, Value (value));
}

Color *
DrawingAttributes::GetOutlineColor ()
{
	Value *value = GetValue (DrawingAttributes::OutlineColorProperty);
	return value ? value->AsColor () : NULL;
}

void
DrawingAttributes::SetOutlineColor (Color * value)
{
	if (!value) return;
	SetValue (DrawingAttributes::OutlineColorProperty, Value (*value));
}

double
DrawingAttributes::GetWidth ()
{
	Value *value = GetValue (DrawingAttributes::WidthProperty);
	return value->AsDouble ();
}

void
DrawingAttributes::SetWidth (double value)
{
	SetValue (DrawingAttributes::WidthProperty, Value (value));
}

Point *
EllipseGeometry::GetCenter ()
{
	Value *value = GetValue (EllipseGeometry::CenterProperty);
	return value ? value->AsPoint () : NULL;
}

void
EllipseGeometry::SetCenter (Point * value)
{
	if (!value) return;
	SetValue (EllipseGeometry::CenterProperty, Value (*value));
}

double
EllipseGeometry::GetRadiusX ()
{
	Value *value = GetValue (EllipseGeometry::RadiusXProperty);
	return value->AsDouble ();
}

void
EllipseGeometry::SetRadiusX (double value)
{
	SetValue (EllipseGeometry::RadiusXProperty, Value (value));
}

double
EllipseGeometry::GetRadiusY ()
{
	Value *value = GetValue (EllipseGeometry::RadiusYProperty);
	return value->AsDouble ();
}

void
EllipseGeometry::SetRadiusY (double value)
{
	SetValue (EllipseGeometry::RadiusYProperty, Value (value));
}

TriggerActionCollection *
EventTrigger::GetActions ()
{
	Value *value = GetValue (EventTrigger::ActionsProperty);
	return value ? value->AsTriggerActionCollection () : NULL;
}

void
EventTrigger::SetActions (TriggerActionCollection * value)
{
	SetValue (EventTrigger::ActionsProperty, Value (value));
}

const char *
EventTrigger::GetRoutedEvent ()
{
	Value *value = GetValue (EventTrigger::RoutedEventProperty);
	return value ? value->AsString () : NULL;
}

void
EventTrigger::SetRoutedEvent (const char * value)
{
	SetValue (EventTrigger::RoutedEventProperty, Value (value));
}

#if SL_2_0
double
FrameworkElement::GetActualHeight ()
{
	Value *value = GetValue (FrameworkElement::ActualHeightProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetActualHeight (double value)
{
	SetValue (FrameworkElement::ActualHeightProperty, Value (value));
}

#endif
#if SL_2_0
double
FrameworkElement::GetActualWidth ()
{
	Value *value = GetValue (FrameworkElement::ActualWidthProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetActualWidth (double value)
{
	SetValue (FrameworkElement::ActualWidthProperty, Value (value));
}

#endif
double
FrameworkElement::GetHeight ()
{
	Value *value = GetValue (FrameworkElement::HeightProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetHeight (double value)
{
	SetValue (FrameworkElement::HeightProperty, Value (value));
}

#if SL_2_0
HorizontalAlignment
FrameworkElement::GetHorizontalAlignment ()
{
	Value *value = GetValue (FrameworkElement::HorizontalAlignmentProperty);
	return (HorizontalAlignment) value->AsInt32 ();
}

void
FrameworkElement::SetHorizontalAlignment (HorizontalAlignment value)
{
	SetValue (FrameworkElement::HorizontalAlignmentProperty, Value (value));
}

#endif
#if SL_2_0
Thickness *
FrameworkElement::GetMargin ()
{
	Value *value = GetValue (FrameworkElement::MarginProperty);
	return value ? value->AsThickness () : NULL;
}

void
FrameworkElement::SetMargin (Thickness * value)
{
	if (!value) return;
	SetValue (FrameworkElement::MarginProperty, Value (*value));
}

#endif
#if SL_2_0
double
FrameworkElement::GetMaxHeight ()
{
	Value *value = GetValue (FrameworkElement::MaxHeightProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetMaxHeight (double value)
{
	SetValue (FrameworkElement::MaxHeightProperty, Value (value));
}

#endif
#if SL_2_0
double
FrameworkElement::GetMaxWidth ()
{
	Value *value = GetValue (FrameworkElement::MaxWidthProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetMaxWidth (double value)
{
	SetValue (FrameworkElement::MaxWidthProperty, Value (value));
}

#endif
#if SL_2_0
double
FrameworkElement::GetMinHeight ()
{
	Value *value = GetValue (FrameworkElement::MinHeightProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetMinHeight (double value)
{
	SetValue (FrameworkElement::MinHeightProperty, Value (value));
}

#endif
#if SL_2_0
double
FrameworkElement::GetMinWidth ()
{
	Value *value = GetValue (FrameworkElement::MinWidthProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetMinWidth (double value)
{
	SetValue (FrameworkElement::MinWidthProperty, Value (value));
}

#endif
#if SL_2_0
Style *
FrameworkElement::GetStyle ()
{
	Value *value = GetValue (FrameworkElement::StyleProperty);
	return value ? value->AsStyle () : NULL;
}

void
FrameworkElement::SetStyle (Style * value)
{
	SetValue (FrameworkElement::StyleProperty, Value (value));
}

#endif
#if SL_2_0
VerticalAlignment
FrameworkElement::GetVerticalAlignment ()
{
	Value *value = GetValue (FrameworkElement::VerticalAlignmentProperty);
	return (VerticalAlignment) value->AsInt32 ();
}

void
FrameworkElement::SetVerticalAlignment (VerticalAlignment value)
{
	SetValue (FrameworkElement::VerticalAlignmentProperty, Value (value));
}

#endif
double
FrameworkElement::GetWidth ()
{
	Value *value = GetValue (FrameworkElement::WidthProperty);
	return value->AsDouble ();
}

void
FrameworkElement::SetWidth (double value)
{
	SetValue (FrameworkElement::WidthProperty, Value (value));
}

FillRule
Geometry::GetFillRule ()
{
	Value *value = GetValue (Geometry::FillRuleProperty);
	return (FillRule) value->AsInt32 ();
}

void
Geometry::SetFillRule (FillRule value)
{
	SetValue (Geometry::FillRuleProperty, Value (value));
}

Transform *
Geometry::GetTransform ()
{
	Value *value = GetValue (Geometry::TransformProperty);
	return value ? value->AsTransform () : NULL;
}

void
Geometry::SetTransform (Transform * value)
{
	SetValue (Geometry::TransformProperty, Value (value));
}

GeometryCollection *
GeometryGroup::GetChildren ()
{
	Value *value = GetValue (GeometryGroup::ChildrenProperty);
	return value ? value->AsGeometryCollection () : NULL;
}

void
GeometryGroup::SetChildren (GeometryCollection * value)
{
	SetValue (GeometryGroup::ChildrenProperty, Value (value));
}

double
Glyphs::GetFontRenderingEmSize ()
{
	Value *value = GetValue (Glyphs::FontRenderingEmSizeProperty);
	return value->AsDouble ();
}

void
Glyphs::SetFontRenderingEmSize (double value)
{
	SetValue (Glyphs::FontRenderingEmSizeProperty, Value (value));
}

const char *
Glyphs::GetFontUri ()
{
	Value *value = GetValue (Glyphs::FontUriProperty);
	return value ? value->AsString () : NULL;
}

void
Glyphs::SetFontUri (const char * value)
{
	SetValue (Glyphs::FontUriProperty, Value (value));
}

const char *
Glyphs::GetIndices ()
{
	Value *value = GetValue (Glyphs::IndicesProperty);
	return value ? value->AsString () : NULL;
}

void
Glyphs::SetIndices (const char * value)
{
	SetValue (Glyphs::IndicesProperty, Value (value));
}

double
Glyphs::GetOriginX ()
{
	Value *value = GetValue (Glyphs::OriginXProperty);
	return value->AsDouble ();
}

void
Glyphs::SetOriginX (double value)
{
	SetValue (Glyphs::OriginXProperty, Value (value));
}

double
Glyphs::GetOriginY ()
{
	Value *value = GetValue (Glyphs::OriginYProperty);
	return value->AsDouble ();
}

void
Glyphs::SetOriginY (double value)
{
	SetValue (Glyphs::OriginYProperty, Value (value));
}

StyleSimulations
Glyphs::GetStyleSimulations ()
{
	Value *value = GetValue (Glyphs::StyleSimulationsProperty);
	return (StyleSimulations) value->AsInt32 ();
}

void
Glyphs::SetStyleSimulations (StyleSimulations value)
{
	SetValue (Glyphs::StyleSimulationsProperty, Value (value));
}

const char *
Glyphs::GetUnicodeString ()
{
	Value *value = GetValue (Glyphs::UnicodeStringProperty);
	return value ? value->AsString () : NULL;
}

void
Glyphs::SetUnicodeString (const char * value)
{
	SetValue (Glyphs::UnicodeStringProperty, Value (value));
}

ColorInterpolationMode
GradientBrush::GetColorInterpolationMode ()
{
	Value *value = GetValue (GradientBrush::ColorInterpolationModeProperty);
	return (ColorInterpolationMode) value->AsInt32 ();
}

void
GradientBrush::SetColorInterpolationMode (ColorInterpolationMode value)
{
	SetValue (GradientBrush::ColorInterpolationModeProperty, Value (value));
}

GradientStopCollection *
GradientBrush::GetGradientStops ()
{
	Value *value = GetValue (GradientBrush::GradientStopsProperty);
	return value ? value->AsGradientStopCollection () : NULL;
}

void
GradientBrush::SetGradientStops (GradientStopCollection * value)
{
	SetValue (GradientBrush::GradientStopsProperty, Value (value));
}

BrushMappingMode
GradientBrush::GetMappingMode ()
{
	Value *value = GetValue (GradientBrush::MappingModeProperty);
	return (BrushMappingMode) value->AsInt32 ();
}

void
GradientBrush::SetMappingMode (BrushMappingMode value)
{
	SetValue (GradientBrush::MappingModeProperty, Value (value));
}

GradientSpreadMethod
GradientBrush::GetSpreadMethod ()
{
	Value *value = GetValue (GradientBrush::SpreadMethodProperty);
	return (GradientSpreadMethod) value->AsInt32 ();
}

void
GradientBrush::SetSpreadMethod (GradientSpreadMethod value)
{
	SetValue (GradientBrush::SpreadMethodProperty, Value (value));
}

Color *
GradientStop::GetColor ()
{
	Value *value = GetValue (GradientStop::ColorProperty);
	return value ? value->AsColor () : NULL;
}

void
GradientStop::SetColor (Color * value)
{
	if (!value) return;
	SetValue (GradientStop::ColorProperty, Value (*value));
}

double
GradientStop::GetOffset ()
{
	Value *value = GetValue (GradientStop::OffsetProperty);
	return value->AsDouble ();
}

void
GradientStop::SetOffset (double value)
{
	SetValue (GradientStop::OffsetProperty, Value (value));
}

#if SL_2_0
ColumnDefinitionCollection *
Grid::GetColumnDefinitions ()
{
	Value *value = GetValue (Grid::ColumnDefinitionsProperty);
	return value ? value->AsColumnDefinitionCollection () : NULL;
}

void
Grid::SetColumnDefinitions (ColumnDefinitionCollection * value)
{
	SetValue (Grid::ColumnDefinitionsProperty, Value (value));
}

#endif
#if SL_2_0
gint32
Grid::GetColumn (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Grid::ColumnProperty);
	if (!value) value = Grid::ColumnProperty->GetDefaultValue();
	return value->AsInt32 ();
}

void
Grid::SetColumn (DependencyObject *obj, gint32 value)
{
	if (!obj) return;
	obj->SetValue (Grid::ColumnProperty, Value (value));
}

#endif
#if SL_2_0
gint32
Grid::GetColumnSpan (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Grid::ColumnSpanProperty);
	if (!value) value = Grid::ColumnSpanProperty->GetDefaultValue();
	return value->AsInt32 ();
}

void
Grid::SetColumnSpan (DependencyObject *obj, gint32 value)
{
	if (!obj) return;
	obj->SetValue (Grid::ColumnSpanProperty, Value (value));
}

#endif
#if SL_2_0
RowDefinitionCollection *
Grid::GetRowDefinitions ()
{
	Value *value = GetValue (Grid::RowDefinitionsProperty);
	return value ? value->AsRowDefinitionCollection () : NULL;
}

void
Grid::SetRowDefinitions (RowDefinitionCollection * value)
{
	SetValue (Grid::RowDefinitionsProperty, Value (value));
}

#endif
#if SL_2_0
gint32
Grid::GetRow (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Grid::RowProperty);
	if (!value) value = Grid::RowProperty->GetDefaultValue();
	return value->AsInt32 ();
}

void
Grid::SetRow (DependencyObject *obj, gint32 value)
{
	if (!obj) return;
	obj->SetValue (Grid::RowProperty, Value (value));
}

#endif
#if SL_2_0
gint32
Grid::GetRowSpan (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Grid::RowSpanProperty);
	if (!value) value = Grid::RowSpanProperty->GetDefaultValue();
	return value->AsInt32 ();
}

void
Grid::SetRowSpan (DependencyObject *obj, gint32 value)
{
	if (!obj) return;
	obj->SetValue (Grid::RowSpanProperty, Value (value));
}

#endif
#if SL_2_0
bool
Grid::GetShowGridLines ()
{
	Value *value = GetValue (Grid::ShowGridLinesProperty);
	return value->AsBool ();
}

void
Grid::SetShowGridLines (bool value)
{
	SetValue (Grid::ShowGridLinesProperty, Value (value));
}

#endif
double
ImageBrush::GetDownloadProgress ()
{
	Value *value = GetValue (ImageBrush::DownloadProgressProperty);
	return value->AsDouble ();
}

void
ImageBrush::SetDownloadProgress (double value)
{
	SetValue (ImageBrush::DownloadProgressProperty, Value (value));
}

const char *
ImageBrush::GetImageSource ()
{
	Value *value = GetValue (ImageBrush::ImageSourceProperty);
	return value ? value->AsString () : NULL;
}

void
ImageBrush::SetImageSource (const char * value)
{
	SetValue (ImageBrush::ImageSourceProperty, Value (value));
}

StrokeCollection *
InkPresenter::GetStrokes ()
{
	Value *value = GetValue (InkPresenter::StrokesProperty);
	return value ? value->AsStrokeCollection () : NULL;
}

void
InkPresenter::SetStrokes (StrokeCollection * value)
{
	SetValue (InkPresenter::StrokesProperty, Value (value));
}

double
Inline::GetFontSize ()
{
	Value *value = GetValue (Inline::FontSizeProperty);
	return value->AsDouble ();
}

void
Inline::SetFontSize (double value)
{
	SetValue (Inline::FontSizeProperty, Value (value));
}

FontStretches
Inline::GetFontStretch ()
{
	Value *value = GetValue (Inline::FontStretchProperty);
	return (FontStretches) value->AsInt32 ();
}

void
Inline::SetFontStretch (FontStretches value)
{
	SetValue (Inline::FontStretchProperty, Value (value));
}

FontStyles
Inline::GetFontStyle ()
{
	Value *value = GetValue (Inline::FontStyleProperty);
	return (FontStyles) value->AsInt32 ();
}

void
Inline::SetFontStyle (FontStyles value)
{
	SetValue (Inline::FontStyleProperty, Value (value));
}

FontWeights
Inline::GetFontWeight ()
{
	Value *value = GetValue (Inline::FontWeightProperty);
	return (FontWeights) value->AsInt32 ();
}

void
Inline::SetFontWeight (FontWeights value)
{
	SetValue (Inline::FontWeightProperty, Value (value));
}

Brush *
Inline::GetForeground ()
{
	Value *value = GetValue (Inline::ForegroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
Inline::SetForeground (Brush * value)
{
	SetValue (Inline::ForegroundProperty, Value (value));
}

Point *
KeySpline::GetControlPoint1 ()
{
	Value *value = GetValue (KeySpline::ControlPoint1Property);
	return value ? value->AsPoint () : NULL;
}

void
KeySpline::SetControlPoint1 (Point * value)
{
	if (!value) return;
	SetValue (KeySpline::ControlPoint1Property, Value (*value));
}

Point *
KeySpline::GetControlPoint2 ()
{
	Value *value = GetValue (KeySpline::ControlPoint2Property);
	return value ? value->AsPoint () : NULL;
}

void
KeySpline::SetControlPoint2 (Point * value)
{
	if (!value) return;
	SetValue (KeySpline::ControlPoint2Property, Value (*value));
}

double
Line::GetX1 ()
{
	Value *value = GetValue (Line::X1Property);
	return value->AsDouble ();
}

void
Line::SetX1 (double value)
{
	SetValue (Line::X1Property, Value (value));
}

double
Line::GetX2 ()
{
	Value *value = GetValue (Line::X2Property);
	return value->AsDouble ();
}

void
Line::SetX2 (double value)
{
	SetValue (Line::X2Property, Value (value));
}

double
Line::GetY1 ()
{
	Value *value = GetValue (Line::Y1Property);
	return value->AsDouble ();
}

void
Line::SetY1 (double value)
{
	SetValue (Line::Y1Property, Value (value));
}

double
Line::GetY2 ()
{
	Value *value = GetValue (Line::Y2Property);
	return value->AsDouble ();
}

void
Line::SetY2 (double value)
{
	SetValue (Line::Y2Property, Value (value));
}

Point *
LinearGradientBrush::GetEndPoint ()
{
	Value *value = GetValue (LinearGradientBrush::EndPointProperty);
	return value ? value->AsPoint () : NULL;
}

void
LinearGradientBrush::SetEndPoint (Point * value)
{
	if (!value) return;
	SetValue (LinearGradientBrush::EndPointProperty, Value (*value));
}

Point *
LinearGradientBrush::GetStartPoint ()
{
	Value *value = GetValue (LinearGradientBrush::StartPointProperty);
	return value ? value->AsPoint () : NULL;
}

void
LinearGradientBrush::SetStartPoint (Point * value)
{
	if (!value) return;
	SetValue (LinearGradientBrush::StartPointProperty, Value (*value));
}

Point *
LineGeometry::GetEndPoint ()
{
	Value *value = GetValue (LineGeometry::EndPointProperty);
	return value ? value->AsPoint () : NULL;
}

void
LineGeometry::SetEndPoint (Point * value)
{
	if (!value) return;
	SetValue (LineGeometry::EndPointProperty, Value (*value));
}

Point *
LineGeometry::GetStartPoint ()
{
	Value *value = GetValue (LineGeometry::StartPointProperty);
	return value ? value->AsPoint () : NULL;
}

void
LineGeometry::SetStartPoint (Point * value)
{
	if (!value) return;
	SetValue (LineGeometry::StartPointProperty, Value (*value));
}

Point *
LineSegment::GetPoint ()
{
	Value *value = GetValue (LineSegment::PointProperty);
	return value ? value->AsPoint () : NULL;
}

void
LineSegment::SetPoint (Point * value)
{
	if (!value) return;
	SetValue (LineSegment::PointProperty, Value (*value));
}

double
Matrix::GetM11 ()
{
	Value *value = GetValue (Matrix::M11Property);
	return value->AsDouble ();
}

void
Matrix::SetM11 (double value)
{
	SetValue (Matrix::M11Property, Value (value));
}

double
Matrix::GetM12 ()
{
	Value *value = GetValue (Matrix::M12Property);
	return value->AsDouble ();
}

void
Matrix::SetM12 (double value)
{
	SetValue (Matrix::M12Property, Value (value));
}

double
Matrix::GetM21 ()
{
	Value *value = GetValue (Matrix::M21Property);
	return value->AsDouble ();
}

void
Matrix::SetM21 (double value)
{
	SetValue (Matrix::M21Property, Value (value));
}

double
Matrix::GetM22 ()
{
	Value *value = GetValue (Matrix::M22Property);
	return value->AsDouble ();
}

void
Matrix::SetM22 (double value)
{
	SetValue (Matrix::M22Property, Value (value));
}

double
Matrix::GetOffsetX ()
{
	Value *value = GetValue (Matrix::OffsetXProperty);
	return value->AsDouble ();
}

void
Matrix::SetOffsetX (double value)
{
	SetValue (Matrix::OffsetXProperty, Value (value));
}

double
Matrix::GetOffsetY ()
{
	Value *value = GetValue (Matrix::OffsetYProperty);
	return value->AsDouble ();
}

void
Matrix::SetOffsetY (double value)
{
	SetValue (Matrix::OffsetYProperty, Value (value));
}

Matrix *
MatrixTransform::GetMatrix ()
{
	Value *value = GetValue (MatrixTransform::MatrixProperty);
	return value ? value->AsMatrix () : NULL;
}

void
MatrixTransform::SetMatrix (Matrix * value)
{
	SetValue (MatrixTransform::MatrixProperty, Value (value));
}

const char *
MediaAttribute::GetValue ()
{
	Value *value = DependencyObject::GetValue (MediaAttribute::ValueProperty);
	return value ? value->AsString () : NULL;
}

void
MediaAttribute::SetValue (const char * value)
{
	DependencyObject::SetValue (MediaAttribute::ValueProperty, Value (value));
}

double
MediaBase::GetDownloadProgress ()
{
	Value *value = GetValue (MediaBase::DownloadProgressProperty);
	return value->AsDouble ();
}

void
MediaBase::SetDownloadProgress (double value)
{
	SetValue (MediaBase::DownloadProgressProperty, Value (value));
}

Stretch
MediaBase::GetStretch ()
{
	Value *value = GetValue (MediaBase::StretchProperty);
	return (Stretch) value->AsInt32 ();
}

void
MediaBase::SetStretch (Stretch value)
{
	SetValue (MediaBase::StretchProperty, Value (value));
}

MediaAttributeCollection *
MediaElement::GetAttributes ()
{
	Value *value = GetValue (MediaElement::AttributesProperty);
	return value ? value->AsMediaAttributeCollection () : NULL;
}

void
MediaElement::SetAttributes (MediaAttributeCollection * value)
{
	SetValue (MediaElement::AttributesProperty, Value (value));
}

gint32
MediaElement::GetAudioStreamCount ()
{
	Value *value = GetValue (MediaElement::AudioStreamCountProperty);
	return value->AsInt32 ();
}

void
MediaElement::SetAudioStreamCount (gint32 value)
{
	SetValue (MediaElement::AudioStreamCountProperty, Value (value));
}

gint32 *
MediaElement::GetAudioStreamIndex ()
{
	Value *value = GetValue (MediaElement::AudioStreamIndexProperty);
	return value ? value->AsNullableInt32 () : NULL;
}

void
MediaElement::SetAudioStreamIndex (gint32 value)
{
	SetValue (MediaElement::AudioStreamIndexProperty, Value (value));
}

void
MediaElement::SetAudioStreamIndex (gint32 * value)
{
	if (!value)
		SetValue (MediaElement::AudioStreamIndexProperty, NULL);
	else
		SetValue (MediaElement::AudioStreamIndexProperty, Value (*value));
}

bool
MediaElement::GetAutoPlay ()
{
	Value *value = GetValue (MediaElement::AutoPlayProperty);
	return value->AsBool ();
}

void
MediaElement::SetAutoPlay (bool value)
{
	SetValue (MediaElement::AutoPlayProperty, Value (value));
}

double
MediaElement::GetBalance ()
{
	Value *value = GetValue (MediaElement::BalanceProperty);
	return value->AsDouble ();
}

void
MediaElement::SetBalance (double value)
{
	SetValue (MediaElement::BalanceProperty, Value (value));
}

double
MediaElement::GetBufferingProgress ()
{
	Value *value = GetValue (MediaElement::BufferingProgressProperty);
	return value->AsDouble ();
}

void
MediaElement::SetBufferingProgress (double value)
{
	SetValue (MediaElement::BufferingProgressProperty, Value (value));
}

TimeSpan
MediaElement::GetBufferingTime ()
{
	Value *value = GetValue (MediaElement::BufferingTimeProperty);
	return value->AsTimeSpan ();
}

void
MediaElement::SetBufferingTime (TimeSpan value)
{
	SetValue (MediaElement::BufferingTimeProperty, Value (value, Type::TIMESPAN));
}

bool
MediaElement::GetCanPause ()
{
	Value *value = GetValue (MediaElement::CanPauseProperty);
	return value->AsBool ();
}

void
MediaElement::SetCanPause (bool value)
{
	SetValue (MediaElement::CanPauseProperty, Value (value));
}

bool
MediaElement::GetCanSeek ()
{
	Value *value = GetValue (MediaElement::CanSeekProperty);
	return value->AsBool ();
}

void
MediaElement::SetCanSeek (bool value)
{
	SetValue (MediaElement::CanSeekProperty, Value (value));
}

const char *
MediaElement::GetCurrentState ()
{
	Value *value = GetValue (MediaElement::CurrentStateProperty);
	return value ? value->AsString () : NULL;
}

void
MediaElement::SetCurrentState (const char * value)
{
	SetValue (MediaElement::CurrentStateProperty, Value (value));
}

bool
MediaElement::GetIsMuted ()
{
	Value *value = GetValue (MediaElement::IsMutedProperty);
	return value->AsBool ();
}

void
MediaElement::SetIsMuted (bool value)
{
	SetValue (MediaElement::IsMutedProperty, Value (value));
}

TimelineMarkerCollection *
MediaElement::GetMarkers ()
{
	Value *value = GetValue (MediaElement::MarkersProperty);
	return value ? value->AsTimelineMarkerCollection () : NULL;
}

void
MediaElement::SetMarkers (TimelineMarkerCollection * value)
{
	SetValue (MediaElement::MarkersProperty, Value (value));
}

Duration *
MediaElement::GetNaturalDuration ()
{
	Value *value = GetValue (MediaElement::NaturalDurationProperty);
	return value ? value->AsDuration () : NULL;
}

double
MediaElement::GetNaturalVideoHeight ()
{
	Value *value = GetValue (MediaElement::NaturalVideoHeightProperty);
	return value->AsDouble ();
}

void
MediaElement::SetNaturalVideoHeight (double value)
{
	SetValue (MediaElement::NaturalVideoHeightProperty, Value (value));
}

double
MediaElement::GetNaturalVideoWidth ()
{
	Value *value = GetValue (MediaElement::NaturalVideoWidthProperty);
	return value->AsDouble ();
}

void
MediaElement::SetNaturalVideoWidth (double value)
{
	SetValue (MediaElement::NaturalVideoWidthProperty, Value (value));
}

TimeSpan
MediaElement::GetPosition ()
{
	Value *value = GetValue (MediaElement::PositionProperty);
	return value->AsTimeSpan ();
}

void
MediaElement::SetPosition (TimeSpan value)
{
	SetValue (MediaElement::PositionProperty, Value (value, Type::TIMESPAN));
}

double
MediaElement::GetVolume ()
{
	Value *value = GetValue (MediaElement::VolumeProperty);
	return value->AsDouble ();
}

void
MediaElement::SetVolume (double value)
{
	SetValue (MediaElement::VolumeProperty, Value (value));
}

#if SL_2_0
double
MultiScaleImage::GetAspectRatio ()
{
	Value *value = GetValue (MultiScaleImage::AspectRatioProperty);
	return value->AsDouble ();
}

#endif
#if SL_2_0
MultiScaleTileSource *
MultiScaleImage::GetSource ()
{
	Value *value = GetValue (MultiScaleImage::SourceProperty);
	return value ? value->AsMultiScaleTileSource () : NULL;
}

void
MultiScaleImage::SetSource (MultiScaleTileSource * value)
{
	SetValue (MultiScaleImage::SourceProperty, Value (value));
}

#endif
#if SL_2_0
bool
MultiScaleImage::GetUseSprings ()
{
	Value *value = GetValue (MultiScaleImage::UseSpringsProperty);
	return value->AsBool ();
}

void
MultiScaleImage::SetUseSprings (bool value)
{
	SetValue (MultiScaleImage::UseSpringsProperty, Value (value));
}

#endif
#if SL_2_0
Point *
MultiScaleImage::GetViewportOrigin ()
{
	Value *value = GetValue (MultiScaleImage::ViewportOriginProperty);
	return value ? value->AsPoint () : NULL;
}

void
MultiScaleImage::SetViewportOrigin (Point * value)
{
	if (!value) return;
	SetValue (MultiScaleImage::ViewportOriginProperty, Value (*value));
}

#endif
#if SL_2_0
double
MultiScaleImage::GetViewportWidth ()
{
	Value *value = GetValue (MultiScaleImage::ViewportWidthProperty);
	return value->AsDouble ();
}

void
MultiScaleImage::SetViewportWidth (double value)
{
	SetValue (MultiScaleImage::ViewportWidthProperty, Value (value));
}

#endif
#if SL_2_0
double
MultiScaleSubImage::GetAspectRatio ()
{
	Value *value = GetValue (MultiScaleSubImage::AspectRatioProperty);
	return value->AsDouble ();
}

#endif
#if SL_2_0
double
MultiScaleSubImage::GetOpacity ()
{
	Value *value = GetValue (MultiScaleSubImage::OpacityProperty);
	return value->AsDouble ();
}

void
MultiScaleSubImage::SetOpacity (double value)
{
	SetValue (MultiScaleSubImage::OpacityProperty, Value (value));
}

#endif
#if SL_2_0
Point *
MultiScaleSubImage::GetViewportOrigin ()
{
	Value *value = GetValue (MultiScaleSubImage::ViewportOriginProperty);
	return value ? value->AsPoint () : NULL;
}

void
MultiScaleSubImage::SetViewportOrigin (Point * value)
{
	if (!value) return;
	SetValue (MultiScaleSubImage::ViewportOriginProperty, Value (*value));
}

#endif
#if SL_2_0
double
MultiScaleSubImage::GetViewportWidth ()
{
	Value *value = GetValue (MultiScaleSubImage::ViewportWidthProperty);
	return value->AsDouble ();
}

void
MultiScaleSubImage::SetViewportWidth (double value)
{
	SetValue (MultiScaleSubImage::ViewportWidthProperty, Value (value));
}

#endif
#if SL_2_0
gint32
MultiScaleSubImage::GetZIndex ()
{
	Value *value = GetValue (MultiScaleSubImage::ZIndexProperty);
	return value->AsInt32 ();
}

void
MultiScaleSubImage::SetZIndex (gint32 value)
{
	SetValue (MultiScaleSubImage::ZIndexProperty, Value (value));
}

#endif
NameScope *
NameScope::GetNameScope (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (NameScope::NameScopeProperty);
	if (!value) value = NameScope::NameScopeProperty->GetDefaultValue();
	return value ? value->AsNameScope () : NULL;
}

void
NameScope::SetNameScope (DependencyObject *obj, NameScope * value)
{
	if (!obj) return;
	obj->SetValue (NameScope::NameScopeProperty, Value (value));
}

#if SL_2_0
ObjectKeyFrameCollection *
ObjectAnimationUsingKeyFrames::GetKeyFrames ()
{
	Value *value = GetValue (ObjectAnimationUsingKeyFrames::KeyFramesProperty);
	return value ? value->AsObjectKeyFrameCollection () : NULL;
}

void
ObjectAnimationUsingKeyFrames::SetKeyFrames (ObjectKeyFrameCollection * value)
{
	SetValue (ObjectAnimationUsingKeyFrames::KeyFramesProperty, Value (value));
}

#endif
#if SL_2_0
KeyTime *
ObjectKeyFrame::GetKeyTime ()
{
	Value *value = DependencyObject::GetValue (ObjectKeyFrame::KeyTimeProperty);
	return value ? value->AsKeyTime () : NULL;
}

void
ObjectKeyFrame::SetKeyTime (KeyTime value)
{
	DependencyObject::SetValue (ObjectKeyFrame::KeyTimeProperty, Value (value));
}

void
ObjectKeyFrame::SetKeyTime (KeyTime * value)
{
	if (!value)
		DependencyObject::SetValue (ObjectKeyFrame::KeyTimeProperty, NULL);
	else
		DependencyObject::SetValue (ObjectKeyFrame::KeyTimeProperty, Value (*value));
}

#endif
#if SL_2_0
DependencyObject *
ObjectKeyFrame::GetValue ()
{
	Value *value = DependencyObject::GetValue (ObjectKeyFrame::ValueProperty);
	return value ? value->AsDependencyObject () : NULL;
}

void
ObjectKeyFrame::SetValue (DependencyObject * value)
{
	DependencyObject::SetValue (ObjectKeyFrame::ValueProperty, Value (value));
}

#endif
Brush *
Panel::GetBackground ()
{
	Value *value = GetValue (Panel::BackgroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
Panel::SetBackground (Brush * value)
{
	SetValue (Panel::BackgroundProperty, Value (value));
}

UIElementCollection *
Panel::GetChildren ()
{
	Value *value = GetValue (Panel::ChildrenProperty);
	return value ? value->AsUIElementCollection () : NULL;
}

void
Panel::SetChildren (UIElementCollection * value)
{
	SetValue (Panel::ChildrenProperty, Value (value));
}

Geometry *
Path::GetData ()
{
	Value *value = GetValue (Path::DataProperty);
	return value ? value->AsGeometry () : NULL;
}

void
Path::SetData (Geometry * value)
{
	SetValue (Path::DataProperty, Value (value));
}

bool
PathFigure::GetIsClosed ()
{
	Value *value = GetValue (PathFigure::IsClosedProperty);
	return value->AsBool ();
}

void
PathFigure::SetIsClosed (bool value)
{
	SetValue (PathFigure::IsClosedProperty, Value (value));
}

#if SL_2_0
bool
PathFigure::GetIsFilled ()
{
	Value *value = GetValue (PathFigure::IsFilledProperty);
	return value->AsBool ();
}

void
PathFigure::SetIsFilled (bool value)
{
	SetValue (PathFigure::IsFilledProperty, Value (value));
}

#endif
PathSegmentCollection *
PathFigure::GetSegments ()
{
	Value *value = GetValue (PathFigure::SegmentsProperty);
	return value ? value->AsPathSegmentCollection () : NULL;
}

void
PathFigure::SetSegments (PathSegmentCollection * value)
{
	SetValue (PathFigure::SegmentsProperty, Value (value));
}

Point *
PathFigure::GetStartPoint ()
{
	Value *value = GetValue (PathFigure::StartPointProperty);
	return value ? value->AsPoint () : NULL;
}

void
PathFigure::SetStartPoint (Point * value)
{
	if (!value) return;
	SetValue (PathFigure::StartPointProperty, Value (*value));
}

PathFigureCollection *
PathGeometry::GetFigures ()
{
	Value *value = GetValue (PathGeometry::FiguresProperty);
	return value ? value->AsPathFigureCollection () : NULL;
}

void
PathGeometry::SetFigures (PathFigureCollection * value)
{
	SetValue (PathGeometry::FiguresProperty, Value (value));
}

Point *
PointAnimation::GetBy ()
{
	Value *value = GetValue (PointAnimation::ByProperty);
	return value ? value->AsPoint () : NULL;
}

void
PointAnimation::SetBy (Point value)
{
	SetValue (PointAnimation::ByProperty, Value (value));
}

void
PointAnimation::SetBy (Point * value)
{
	if (!value)
		SetValue (PointAnimation::ByProperty, NULL);
	else
		SetValue (PointAnimation::ByProperty, Value (*value));
}

Point *
PointAnimation::GetFrom ()
{
	Value *value = GetValue (PointAnimation::FromProperty);
	return value ? value->AsPoint () : NULL;
}

void
PointAnimation::SetFrom (Point value)
{
	SetValue (PointAnimation::FromProperty, Value (value));
}

void
PointAnimation::SetFrom (Point * value)
{
	if (!value)
		SetValue (PointAnimation::FromProperty, NULL);
	else
		SetValue (PointAnimation::FromProperty, Value (*value));
}

Point *
PointAnimation::GetTo ()
{
	Value *value = GetValue (PointAnimation::ToProperty);
	return value ? value->AsPoint () : NULL;
}

void
PointAnimation::SetTo (Point value)
{
	SetValue (PointAnimation::ToProperty, Value (value));
}

void
PointAnimation::SetTo (Point * value)
{
	if (!value)
		SetValue (PointAnimation::ToProperty, NULL);
	else
		SetValue (PointAnimation::ToProperty, Value (*value));
}

PointKeyFrameCollection *
PointAnimationUsingKeyFrames::GetKeyFrames ()
{
	Value *value = GetValue (PointAnimationUsingKeyFrames::KeyFramesProperty);
	return value ? value->AsPointKeyFrameCollection () : NULL;
}

void
PointAnimationUsingKeyFrames::SetKeyFrames (PointKeyFrameCollection * value)
{
	SetValue (PointAnimationUsingKeyFrames::KeyFramesProperty, Value (value));
}

KeyTime *
PointKeyFrame::GetKeyTime ()
{
	Value *value = DependencyObject::GetValue (PointKeyFrame::KeyTimeProperty);
	return value ? value->AsKeyTime () : NULL;
}

void
PointKeyFrame::SetKeyTime (KeyTime value)
{
	DependencyObject::SetValue (PointKeyFrame::KeyTimeProperty, Value (value));
}

void
PointKeyFrame::SetKeyTime (KeyTime * value)
{
	if (!value)
		DependencyObject::SetValue (PointKeyFrame::KeyTimeProperty, NULL);
	else
		DependencyObject::SetValue (PointKeyFrame::KeyTimeProperty, Value (*value));
}

Point *
PointKeyFrame::GetValue ()
{
	Value *value = DependencyObject::GetValue (PointKeyFrame::ValueProperty);
	return value ? value->AsPoint () : NULL;
}

void
PointKeyFrame::SetValue (Point value)
{
	DependencyObject::SetValue (PointKeyFrame::ValueProperty, Value (value));
}

void
PointKeyFrame::SetValue (Point * value)
{
	if (!value)
		DependencyObject::SetValue (PointKeyFrame::ValueProperty, NULL);
	else
		DependencyObject::SetValue (PointKeyFrame::ValueProperty, Value (*value));
}

PointCollection *
PolyBezierSegment::GetPoints ()
{
	Value *value = GetValue (PolyBezierSegment::PointsProperty);
	return value ? value->AsPointCollection () : NULL;
}

void
PolyBezierSegment::SetPoints (PointCollection * value)
{
	SetValue (PolyBezierSegment::PointsProperty, Value (value));
}

FillRule
Polygon::GetFillRule ()
{
	Value *value = GetValue (Polygon::FillRuleProperty);
	return (FillRule) value->AsInt32 ();
}

void
Polygon::SetFillRule (FillRule value)
{
	SetValue (Polygon::FillRuleProperty, Value (value));
}

PointCollection *
Polygon::GetPoints ()
{
	Value *value = GetValue (Polygon::PointsProperty);
	return value ? value->AsPointCollection () : NULL;
}

void
Polygon::SetPoints (PointCollection * value)
{
	SetValue (Polygon::PointsProperty, Value (value));
}

FillRule
Polyline::GetFillRule ()
{
	Value *value = GetValue (Polyline::FillRuleProperty);
	return (FillRule) value->AsInt32 ();
}

void
Polyline::SetFillRule (FillRule value)
{
	SetValue (Polyline::FillRuleProperty, Value (value));
}

PointCollection *
Polyline::GetPoints ()
{
	Value *value = GetValue (Polyline::PointsProperty);
	return value ? value->AsPointCollection () : NULL;
}

void
Polyline::SetPoints (PointCollection * value)
{
	SetValue (Polyline::PointsProperty, Value (value));
}

PointCollection *
PolyLineSegment::GetPoints ()
{
	Value *value = GetValue (PolyLineSegment::PointsProperty);
	return value ? value->AsPointCollection () : NULL;
}

void
PolyLineSegment::SetPoints (PointCollection * value)
{
	SetValue (PolyLineSegment::PointsProperty, Value (value));
}

PointCollection *
PolyQuadraticBezierSegment::GetPoints ()
{
	Value *value = GetValue (PolyQuadraticBezierSegment::PointsProperty);
	return value ? value->AsPointCollection () : NULL;
}

void
PolyQuadraticBezierSegment::SetPoints (PointCollection * value)
{
	SetValue (PolyQuadraticBezierSegment::PointsProperty, Value (value));
}

Point *
QuadraticBezierSegment::GetPoint1 ()
{
	Value *value = GetValue (QuadraticBezierSegment::Point1Property);
	return value ? value->AsPoint () : NULL;
}

void
QuadraticBezierSegment::SetPoint1 (Point * value)
{
	if (!value) return;
	SetValue (QuadraticBezierSegment::Point1Property, Value (*value));
}

Point *
QuadraticBezierSegment::GetPoint2 ()
{
	Value *value = GetValue (QuadraticBezierSegment::Point2Property);
	return value ? value->AsPoint () : NULL;
}

void
QuadraticBezierSegment::SetPoint2 (Point * value)
{
	if (!value) return;
	SetValue (QuadraticBezierSegment::Point2Property, Value (*value));
}

Point *
RadialGradientBrush::GetCenter ()
{
	Value *value = GetValue (RadialGradientBrush::CenterProperty);
	return value ? value->AsPoint () : NULL;
}

void
RadialGradientBrush::SetCenter (Point * value)
{
	if (!value) return;
	SetValue (RadialGradientBrush::CenterProperty, Value (*value));
}

Point *
RadialGradientBrush::GetGradientOrigin ()
{
	Value *value = GetValue (RadialGradientBrush::GradientOriginProperty);
	return value ? value->AsPoint () : NULL;
}

void
RadialGradientBrush::SetGradientOrigin (Point * value)
{
	if (!value) return;
	SetValue (RadialGradientBrush::GradientOriginProperty, Value (*value));
}

double
RadialGradientBrush::GetRadiusX ()
{
	Value *value = GetValue (RadialGradientBrush::RadiusXProperty);
	return value->AsDouble ();
}

void
RadialGradientBrush::SetRadiusX (double value)
{
	SetValue (RadialGradientBrush::RadiusXProperty, Value (value));
}

double
RadialGradientBrush::GetRadiusY ()
{
	Value *value = GetValue (RadialGradientBrush::RadiusYProperty);
	return value->AsDouble ();
}

void
RadialGradientBrush::SetRadiusY (double value)
{
	SetValue (RadialGradientBrush::RadiusYProperty, Value (value));
}

double
Rectangle::GetRadiusX ()
{
	Value *value = GetValue (Rectangle::RadiusXProperty);
	return value->AsDouble ();
}

void
Rectangle::SetRadiusX (double value)
{
	SetValue (Rectangle::RadiusXProperty, Value (value));
}

double
Rectangle::GetRadiusY ()
{
	Value *value = GetValue (Rectangle::RadiusYProperty);
	return value->AsDouble ();
}

void
Rectangle::SetRadiusY (double value)
{
	SetValue (Rectangle::RadiusYProperty, Value (value));
}

double
RectangleGeometry::GetRadiusX ()
{
	Value *value = GetValue (RectangleGeometry::RadiusXProperty);
	return value->AsDouble ();
}

void
RectangleGeometry::SetRadiusX (double value)
{
	SetValue (RectangleGeometry::RadiusXProperty, Value (value));
}

double
RectangleGeometry::GetRadiusY ()
{
	Value *value = GetValue (RectangleGeometry::RadiusYProperty);
	return value->AsDouble ();
}

void
RectangleGeometry::SetRadiusY (double value)
{
	SetValue (RectangleGeometry::RadiusYProperty, Value (value));
}

Rect *
RectangleGeometry::GetRect ()
{
	Value *value = GetValue (RectangleGeometry::RectProperty);
	return value ? value->AsRect () : NULL;
}

void
RectangleGeometry::SetRect (Rect * value)
{
	if (!value) return;
	SetValue (RectangleGeometry::RectProperty, Value (*value));
}

double
RotateTransform::GetAngle ()
{
	Value *value = GetValue (RotateTransform::AngleProperty);
	return value->AsDouble ();
}

void
RotateTransform::SetAngle (double value)
{
	SetValue (RotateTransform::AngleProperty, Value (value));
}

double
RotateTransform::GetCenterX ()
{
	Value *value = GetValue (RotateTransform::CenterXProperty);
	return value->AsDouble ();
}

void
RotateTransform::SetCenterX (double value)
{
	SetValue (RotateTransform::CenterXProperty, Value (value));
}

double
RotateTransform::GetCenterY ()
{
	Value *value = GetValue (RotateTransform::CenterYProperty);
	return value->AsDouble ();
}

void
RotateTransform::SetCenterY (double value)
{
	SetValue (RotateTransform::CenterYProperty, Value (value));
}

#if SL_2_0
GridLength *
RowDefinition::GetHeight ()
{
	Value *value = GetValue (RowDefinition::HeightProperty);
	return value ? value->AsGridLength () : NULL;
}

void
RowDefinition::SetHeight (GridLength * value)
{
	if (!value) return;
	SetValue (RowDefinition::HeightProperty, Value (*value));
}

#endif
#if SL_2_0
double
RowDefinition::GetMaxHeight ()
{
	Value *value = GetValue (RowDefinition::MaxHeightProperty);
	return value->AsDouble ();
}

void
RowDefinition::SetMaxHeight (double value)
{
	SetValue (RowDefinition::MaxHeightProperty, Value (value));
}

#endif
#if SL_2_0
double
RowDefinition::GetMinHeight ()
{
	Value *value = GetValue (RowDefinition::MinHeightProperty);
	return value->AsDouble ();
}

void
RowDefinition::SetMinHeight (double value)
{
	SetValue (RowDefinition::MinHeightProperty, Value (value));
}

#endif
const char *
Run::GetText ()
{
	Value *value = GetValue (Run::TextProperty);
	return value ? value->AsString () : NULL;
}

void
Run::SetText (const char * value)
{
	SetValue (Run::TextProperty, Value (value));
}

double
ScaleTransform::GetCenterX ()
{
	Value *value = GetValue (ScaleTransform::CenterXProperty);
	return value->AsDouble ();
}

void
ScaleTransform::SetCenterX (double value)
{
	SetValue (ScaleTransform::CenterXProperty, Value (value));
}

double
ScaleTransform::GetCenterY ()
{
	Value *value = GetValue (ScaleTransform::CenterYProperty);
	return value->AsDouble ();
}

void
ScaleTransform::SetCenterY (double value)
{
	SetValue (ScaleTransform::CenterYProperty, Value (value));
}

double
ScaleTransform::GetScaleX ()
{
	Value *value = GetValue (ScaleTransform::ScaleXProperty);
	return value->AsDouble ();
}

void
ScaleTransform::SetScaleX (double value)
{
	SetValue (ScaleTransform::ScaleXProperty, Value (value));
}

double
ScaleTransform::GetScaleY ()
{
	Value *value = GetValue (ScaleTransform::ScaleYProperty);
	return value->AsDouble ();
}

void
ScaleTransform::SetScaleY (double value)
{
	SetValue (ScaleTransform::ScaleYProperty, Value (value));
}

Brush *
Shape::GetFill ()
{
	Value *value = GetValue (Shape::FillProperty);
	return value ? value->AsBrush () : NULL;
}

void
Shape::SetFill (Brush * value)
{
	SetValue (Shape::FillProperty, Value (value));
}

Stretch
Shape::GetStretch ()
{
	Value *value = GetValue (Shape::StretchProperty);
	return (Stretch) value->AsInt32 ();
}

void
Shape::SetStretch (Stretch value)
{
	SetValue (Shape::StretchProperty, Value (value));
}

DoubleCollection *
Shape::GetStrokeDashArray ()
{
	Value *value = GetValue (Shape::StrokeDashArrayProperty);
	return value ? value->AsDoubleCollection () : NULL;
}

void
Shape::SetStrokeDashArray (DoubleCollection * value)
{
	SetValue (Shape::StrokeDashArrayProperty, Value (value));
}

PenLineCap
Shape::GetStrokeDashCap ()
{
	Value *value = GetValue (Shape::StrokeDashCapProperty);
	return (PenLineCap) value->AsInt32 ();
}

void
Shape::SetStrokeDashCap (PenLineCap value)
{
	SetValue (Shape::StrokeDashCapProperty, Value (value));
}

double
Shape::GetStrokeDashOffset ()
{
	Value *value = GetValue (Shape::StrokeDashOffsetProperty);
	return value->AsDouble ();
}

void
Shape::SetStrokeDashOffset (double value)
{
	SetValue (Shape::StrokeDashOffsetProperty, Value (value));
}

PenLineCap
Shape::GetStrokeEndLineCap ()
{
	Value *value = GetValue (Shape::StrokeEndLineCapProperty);
	return (PenLineCap) value->AsInt32 ();
}

void
Shape::SetStrokeEndLineCap (PenLineCap value)
{
	SetValue (Shape::StrokeEndLineCapProperty, Value (value));
}

PenLineJoin
Shape::GetStrokeLineJoin ()
{
	Value *value = GetValue (Shape::StrokeLineJoinProperty);
	return (PenLineJoin) value->AsInt32 ();
}

void
Shape::SetStrokeLineJoin (PenLineJoin value)
{
	SetValue (Shape::StrokeLineJoinProperty, Value (value));
}

double
Shape::GetStrokeMiterLimit ()
{
	Value *value = GetValue (Shape::StrokeMiterLimitProperty);
	return value->AsDouble ();
}

void
Shape::SetStrokeMiterLimit (double value)
{
	SetValue (Shape::StrokeMiterLimitProperty, Value (value));
}

Brush *
Shape::GetStroke ()
{
	Value *value = GetValue (Shape::StrokeProperty);
	return value ? value->AsBrush () : NULL;
}

void
Shape::SetStroke (Brush * value)
{
	SetValue (Shape::StrokeProperty, Value (value));
}

PenLineCap
Shape::GetStrokeStartLineCap ()
{
	Value *value = GetValue (Shape::StrokeStartLineCapProperty);
	return (PenLineCap) value->AsInt32 ();
}

void
Shape::SetStrokeStartLineCap (PenLineCap value)
{
	SetValue (Shape::StrokeStartLineCapProperty, Value (value));
}

double
Shape::GetStrokeThickness ()
{
	Value *value = GetValue (Shape::StrokeThicknessProperty);
	return value->AsDouble ();
}

void
Shape::SetStrokeThickness (double value)
{
	SetValue (Shape::StrokeThicknessProperty, Value (value));
}

double
SkewTransform::GetAngleX ()
{
	Value *value = GetValue (SkewTransform::AngleXProperty);
	return value->AsDouble ();
}

void
SkewTransform::SetAngleX (double value)
{
	SetValue (SkewTransform::AngleXProperty, Value (value));
}

double
SkewTransform::GetAngleY ()
{
	Value *value = GetValue (SkewTransform::AngleYProperty);
	return value->AsDouble ();
}

void
SkewTransform::SetAngleY (double value)
{
	SetValue (SkewTransform::AngleYProperty, Value (value));
}

double
SkewTransform::GetCenterX ()
{
	Value *value = GetValue (SkewTransform::CenterXProperty);
	return value->AsDouble ();
}

void
SkewTransform::SetCenterX (double value)
{
	SetValue (SkewTransform::CenterXProperty, Value (value));
}

double
SkewTransform::GetCenterY ()
{
	Value *value = GetValue (SkewTransform::CenterYProperty);
	return value->AsDouble ();
}

void
SkewTransform::SetCenterY (double value)
{
	SetValue (SkewTransform::CenterYProperty, Value (value));
}

Color *
SolidColorBrush::GetColor ()
{
	Value *value = GetValue (SolidColorBrush::ColorProperty);
	return value ? value->AsColor () : NULL;
}

void
SolidColorBrush::SetColor (Color * value)
{
	if (!value) return;
	SetValue (SolidColorBrush::ColorProperty, Value (*value));
}

KeySpline *
SplineColorKeyFrame::GetKeySpline ()
{
	Value *value = DependencyObject::GetValue (SplineColorKeyFrame::KeySplineProperty);
	return value ? value->AsKeySpline () : NULL;
}

void
SplineColorKeyFrame::SetKeySpline (KeySpline * value)
{
	DependencyObject::SetValue (SplineColorKeyFrame::KeySplineProperty, Value (value));
}

KeySpline *
SplineDoubleKeyFrame::GetKeySpline ()
{
	Value *value = DependencyObject::GetValue (SplineDoubleKeyFrame::KeySplineProperty);
	return value ? value->AsKeySpline () : NULL;
}

void
SplineDoubleKeyFrame::SetKeySpline (KeySpline * value)
{
	DependencyObject::SetValue (SplineDoubleKeyFrame::KeySplineProperty, Value (value));
}

KeySpline *
SplinePointKeyFrame::GetKeySpline ()
{
	Value *value = DependencyObject::GetValue (SplinePointKeyFrame::KeySplineProperty);
	return value ? value->AsKeySpline () : NULL;
}

void
SplinePointKeyFrame::SetKeySpline (KeySpline * value)
{
	DependencyObject::SetValue (SplinePointKeyFrame::KeySplineProperty, Value (value));
}

#if SL_2_0
Orientation
StackPanel::GetOrientation ()
{
	Value *value = GetValue (StackPanel::OrientationProperty);
	return (Orientation) value->AsInt32 ();
}

void
StackPanel::SetOrientation (Orientation value)
{
	SetValue (StackPanel::OrientationProperty, Value (value));
}

#endif
const char *
Storyboard::GetTargetName (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Storyboard::TargetNameProperty);
	if (!value) value = Storyboard::TargetNameProperty->GetDefaultValue();
	return value ? value->AsString () : NULL;
}

void
Storyboard::SetTargetName (DependencyObject *obj, const char * value)
{
	if (!obj) return;
	obj->SetValue (Storyboard::TargetNameProperty, Value (value));
}

const char *
Storyboard::GetTargetProperty (DependencyObject *obj)
{
	Value *value = (!obj) ? NULL : obj->GetValue (Storyboard::TargetPropertyProperty);
	if (!value) value = Storyboard::TargetPropertyProperty->GetDefaultValue();
	return value ? value->AsString () : NULL;
}

void
Storyboard::SetTargetProperty (DependencyObject *obj, const char * value)
{
	if (!obj) return;
	obj->SetValue (Storyboard::TargetPropertyProperty, Value (value));
}

DrawingAttributes *
Stroke::GetDrawingAttributes ()
{
	Value *value = GetValue (Stroke::DrawingAttributesProperty);
	return value ? value->AsDrawingAttributes () : NULL;
}

void
Stroke::SetDrawingAttributes (DrawingAttributes * value)
{
	SetValue (Stroke::DrawingAttributesProperty, Value (value));
}

StylusPointCollection *
Stroke::GetStylusPoints ()
{
	Value *value = GetValue (Stroke::StylusPointsProperty);
	return value ? value->AsStylusPointCollection () : NULL;
}

void
Stroke::SetStylusPoints (StylusPointCollection * value)
{
	SetValue (Stroke::StylusPointsProperty, Value (value));
}

#if SL_2_0
SetterBaseCollection *
Style::GetSetters ()
{
	Value *value = GetValue (Style::SettersProperty);
	return value ? value->AsSetterBaseCollection () : NULL;
}

void
Style::SetSetters (SetterBaseCollection * value)
{
	SetValue (Style::SettersProperty, Value (value));
}

#endif
TabletDeviceType
StylusInfo::GetDeviceType ()
{
	Value *value = GetValue (StylusInfo::DeviceTypeProperty);
	return (TabletDeviceType) value->AsInt32 ();
}

void
StylusInfo::SetDeviceType (TabletDeviceType value)
{
	SetValue (StylusInfo::DeviceTypeProperty, Value (value));
}

bool
StylusInfo::GetIsInverted ()
{
	Value *value = GetValue (StylusInfo::IsInvertedProperty);
	return value->AsBool ();
}

void
StylusInfo::SetIsInverted (bool value)
{
	SetValue (StylusInfo::IsInvertedProperty, Value (value));
}

double
StylusPoint::GetPressureFactor ()
{
	Value *value = GetValue (StylusPoint::PressureFactorProperty);
	return value->AsDouble ();
}

void
StylusPoint::SetPressureFactor (double value)
{
	SetValue (StylusPoint::PressureFactorProperty, Value (value));
}

double
StylusPoint::GetX ()
{
	Value *value = GetValue (StylusPoint::XProperty);
	return value->AsDouble ();
}

void
StylusPoint::SetX (double value)
{
	SetValue (StylusPoint::XProperty, Value (value));
}

double
StylusPoint::GetY ()
{
	Value *value = GetValue (StylusPoint::YProperty);
	return value->AsDouble ();
}

void
StylusPoint::SetY (double value)
{
	SetValue (StylusPoint::YProperty, Value (value));
}

const char *
TextBlock::GetFontFamily ()
{
	Value *value = GetValue (TextBlock::FontFamilyProperty);
	return value ? value->AsString () : NULL;
}

void
TextBlock::SetFontFamily (const char * value)
{
	SetValue (TextBlock::FontFamilyProperty, Value (value));
}

double
TextBlock::GetFontSize ()
{
	Value *value = GetValue (TextBlock::FontSizeProperty);
	return value->AsDouble ();
}

void
TextBlock::SetFontSize (double value)
{
	SetValue (TextBlock::FontSizeProperty, Value (value));
}

FontStretches
TextBlock::GetFontStretch ()
{
	Value *value = GetValue (TextBlock::FontStretchProperty);
	return (FontStretches) value->AsInt32 ();
}

void
TextBlock::SetFontStretch (FontStretches value)
{
	SetValue (TextBlock::FontStretchProperty, Value (value));
}

FontStyles
TextBlock::GetFontStyle ()
{
	Value *value = GetValue (TextBlock::FontStyleProperty);
	return (FontStyles) value->AsInt32 ();
}

void
TextBlock::SetFontStyle (FontStyles value)
{
	SetValue (TextBlock::FontStyleProperty, Value (value));
}

FontWeights
TextBlock::GetFontWeight ()
{
	Value *value = GetValue (TextBlock::FontWeightProperty);
	return (FontWeights) value->AsInt32 ();
}

void
TextBlock::SetFontWeight (FontWeights value)
{
	SetValue (TextBlock::FontWeightProperty, Value (value));
}

Brush *
TextBlock::GetForeground ()
{
	Value *value = GetValue (TextBlock::ForegroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
TextBlock::SetForeground (Brush * value)
{
	SetValue (TextBlock::ForegroundProperty, Value (value));
}

InlineCollection *
TextBlock::GetInlines ()
{
	Value *value = GetValue (TextBlock::InlinesProperty);
	return value ? value->AsInlineCollection () : NULL;
}

void
TextBlock::SetInlines (InlineCollection * value)
{
	SetValue (TextBlock::InlinesProperty, Value (value));
}

#if SL_2_0
double
TextBlock::GetLineHeight ()
{
	Value *value = GetValue (TextBlock::LineHeightProperty);
	return value->AsDouble ();
}

void
TextBlock::SetLineHeight (double value)
{
	SetValue (TextBlock::LineHeightProperty, Value (value));
}

#endif
#if SL_2_0
LineStackingStrategy
TextBlock::GetLineStackingStrategy ()
{
	Value *value = GetValue (TextBlock::LineStackingStrategyProperty);
	return (LineStackingStrategy) value->AsInt32 ();
}

void
TextBlock::SetLineStackingStrategy (LineStackingStrategy value)
{
	SetValue (TextBlock::LineStackingStrategyProperty, Value (value));
}

#endif
#if SL_2_0
Thickness *
TextBlock::GetPadding ()
{
	Value *value = GetValue (TextBlock::PaddingProperty);
	return value ? value->AsThickness () : NULL;
}

void
TextBlock::SetPadding (Thickness * value)
{
	if (!value) return;
	SetValue (TextBlock::PaddingProperty, Value (*value));
}

#endif
#if SL_2_0
TextAlignment
TextBlock::GetTextAlignment ()
{
	Value *value = GetValue (TextBlock::TextAlignmentProperty);
	return (TextAlignment) value->AsInt32 ();
}

void
TextBlock::SetTextAlignment (TextAlignment value)
{
	SetValue (TextBlock::TextAlignmentProperty, Value (value));
}

#endif
TextDecorations
TextBlock::GetTextDecorations ()
{
	Value *value = GetValue (TextBlock::TextDecorationsProperty);
	return (TextDecorations) value->AsInt32 ();
}

void
TextBlock::SetTextDecorations (TextDecorations value)
{
	SetValue (TextBlock::TextDecorationsProperty, Value (value));
}

const char *
TextBlock::GetText ()
{
	Value *value = GetValue (TextBlock::TextProperty);
	return value ? value->AsString () : NULL;
}

void
TextBlock::SetText (const char * value)
{
	SetValue (TextBlock::TextProperty, Value (value));
}

TextWrapping
TextBlock::GetTextWrapping ()
{
	Value *value = GetValue (TextBlock::TextWrappingProperty);
	return (TextWrapping) value->AsInt32 ();
}

void
TextBlock::SetTextWrapping (TextWrapping value)
{
	SetValue (TextBlock::TextWrappingProperty, Value (value));
}

#if SL_2_0
bool
TextBox::GetAcceptsReturn ()
{
	Value *value = GetValue (TextBox::AcceptsReturnProperty);
	return value->AsBool ();
}

void
TextBox::SetAcceptsReturn (bool value)
{
	SetValue (TextBox::AcceptsReturnProperty, Value (value));
}

#endif
#if SL_2_0
ScrollBarVisibility
TextBox::GetHorizontalScrollBarVisibility ()
{
	Value *value = GetValue (TextBox::HorizontalScrollBarVisibilityProperty);
	return (ScrollBarVisibility) value->AsInt32 ();
}

void
TextBox::SetHorizontalScrollBarVisibility (ScrollBarVisibility value)
{
	SetValue (TextBox::HorizontalScrollBarVisibilityProperty, Value (value));
}

#endif
#if SL_2_0
bool
TextBox::GetIsReadOnly ()
{
	Value *value = GetValue (TextBox::IsReadOnlyProperty);
	return value->AsBool ();
}

void
TextBox::SetIsReadOnly (bool value)
{
	SetValue (TextBox::IsReadOnlyProperty, Value (value));
}

#endif
#if SL_2_0
gint32
TextBox::GetMaxLength ()
{
	Value *value = GetValue (TextBox::MaxLengthProperty);
	return value->AsInt32 ();
}

void
TextBox::SetMaxLength (gint32 value)
{
	SetValue (TextBox::MaxLengthProperty, Value (value));
}

#endif
#if SL_2_0
const char *
TextBox::GetSelectedText ()
{
	Value *value = GetValue (TextBox::SelectedTextProperty);
	return value ? value->AsString () : NULL;
}

void
TextBox::SetSelectedText (const char * value)
{
	SetValue (TextBox::SelectedTextProperty, Value (value));
}

#endif
#if SL_2_0
Brush *
TextBox::GetSelectionBackground ()
{
	Value *value = GetValue (TextBox::SelectionBackgroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
TextBox::SetSelectionBackground (Brush * value)
{
	SetValue (TextBox::SelectionBackgroundProperty, Value (value));
}

#endif
#if SL_2_0
Brush *
TextBox::GetSelectionForeground ()
{
	Value *value = GetValue (TextBox::SelectionForegroundProperty);
	return value ? value->AsBrush () : NULL;
}

void
TextBox::SetSelectionForeground (Brush * value)
{
	SetValue (TextBox::SelectionForegroundProperty, Value (value));
}

#endif
#if SL_2_0
gint32
TextBox::GetSelectionLength ()
{
	Value *value = GetValue (TextBox::SelectionLengthProperty);
	return value->AsInt32 ();
}

void
TextBox::SetSelectionLength (gint32 value)
{
	SetValue (TextBox::SelectionLengthProperty, Value (value));
}

#endif
#if SL_2_0
gint32
TextBox::GetSelectionStart ()
{
	Value *value = GetValue (TextBox::SelectionStartProperty);
	return value->AsInt32 ();
}

void
TextBox::SetSelectionStart (gint32 value)
{
	SetValue (TextBox::SelectionStartProperty, Value (value));
}

#endif
#if SL_2_0
TextAlignment
TextBox::GetTextAlignment ()
{
	Value *value = GetValue (TextBox::TextAlignmentProperty);
	return (TextAlignment) value->AsInt32 ();
}

void
TextBox::SetTextAlignment (TextAlignment value)
{
	SetValue (TextBox::TextAlignmentProperty, Value (value));
}

#endif
#if SL_2_0
const char *
TextBox::GetText ()
{
	Value *value = GetValue (TextBox::TextProperty);
	return value ? value->AsString () : NULL;
}

void
TextBox::SetText (const char * value)
{
	SetValue (TextBox::TextProperty, Value (value));
}

#endif
#if SL_2_0
TextWrapping
TextBox::GetTextWrapping ()
{
	Value *value = GetValue (TextBox::TextWrappingProperty);
	return (TextWrapping) value->AsInt32 ();
}

void
TextBox::SetTextWrapping (TextWrapping value)
{
	SetValue (TextBox::TextWrappingProperty, Value (value));
}

#endif
#if SL_2_0
ScrollBarVisibility
TextBox::GetVerticalScrollBarVisibility ()
{
	Value *value = GetValue (TextBox::VerticalScrollBarVisibilityProperty);
	return (ScrollBarVisibility) value->AsInt32 ();
}

void
TextBox::SetVerticalScrollBarVisibility (ScrollBarVisibility value)
{
	SetValue (TextBox::VerticalScrollBarVisibilityProperty, Value (value));
}

#endif
AlignmentX
TileBrush::GetAlignmentX ()
{
	Value *value = GetValue (TileBrush::AlignmentXProperty);
	return (AlignmentX) value->AsInt32 ();
}

void
TileBrush::SetAlignmentX (AlignmentX value)
{
	SetValue (TileBrush::AlignmentXProperty, Value (value));
}

AlignmentY
TileBrush::GetAlignmentY ()
{
	Value *value = GetValue (TileBrush::AlignmentYProperty);
	return (AlignmentY) value->AsInt32 ();
}

void
TileBrush::SetAlignmentY (AlignmentY value)
{
	SetValue (TileBrush::AlignmentYProperty, Value (value));
}

Stretch
TileBrush::GetStretch ()
{
	Value *value = GetValue (TileBrush::StretchProperty);
	return (Stretch) value->AsInt32 ();
}

void
TileBrush::SetStretch (Stretch value)
{
	SetValue (TileBrush::StretchProperty, Value (value));
}

bool
Timeline::GetAutoReverse ()
{
	Value *value = GetValue (Timeline::AutoReverseProperty);
	return value->AsBool ();
}

void
Timeline::SetAutoReverse (bool value)
{
	SetValue (Timeline::AutoReverseProperty, Value (value));
}

FillBehavior
Timeline::GetFillBehavior ()
{
	Value *value = GetValue (Timeline::FillBehaviorProperty);
	return (FillBehavior) value->AsInt32 ();
}

void
Timeline::SetFillBehavior (FillBehavior value)
{
	SetValue (Timeline::FillBehaviorProperty, Value (value));
}

double
Timeline::GetSpeedRatio ()
{
	Value *value = GetValue (Timeline::SpeedRatioProperty);
	return value->AsDouble ();
}

void
Timeline::SetSpeedRatio (double value)
{
	SetValue (Timeline::SpeedRatioProperty, Value (value));
}

TimelineCollection *
TimelineGroup::GetChildren ()
{
	Value *value = GetValue (TimelineGroup::ChildrenProperty);
	return value ? value->AsTimelineCollection () : NULL;
}

void
TimelineGroup::SetChildren (TimelineCollection * value)
{
	SetValue (TimelineGroup::ChildrenProperty, Value (value));
}

const char *
TimelineMarker::GetText ()
{
	Value *value = GetValue (TimelineMarker::TextProperty);
	return value ? value->AsString () : NULL;
}

void
TimelineMarker::SetText (const char * value)
{
	SetValue (TimelineMarker::TextProperty, Value (value));
}

TimeSpan
TimelineMarker::GetTime ()
{
	Value *value = GetValue (TimelineMarker::TimeProperty);
	return value->AsTimeSpan ();
}

void
TimelineMarker::SetTime (TimeSpan value)
{
	SetValue (TimelineMarker::TimeProperty, Value (value, Type::TIMESPAN));
}

const char *
TimelineMarker::GetType ()
{
	Value *value = GetValue (TimelineMarker::TypeProperty);
	return value ? value->AsString () : NULL;
}

void
TimelineMarker::SetType (const char * value)
{
	SetValue (TimelineMarker::TypeProperty, Value (value));
}

TransformCollection *
TransformGroup::GetChildren ()
{
	Value *value = GetValue (TransformGroup::ChildrenProperty);
	return value ? value->AsTransformCollection () : NULL;
}

void
TransformGroup::SetChildren (TransformCollection * value)
{
	SetValue (TransformGroup::ChildrenProperty, Value (value));
}

double
TranslateTransform::GetX ()
{
	Value *value = GetValue (TranslateTransform::XProperty);
	return value->AsDouble ();
}

void
TranslateTransform::SetX (double value)
{
	SetValue (TranslateTransform::XProperty, Value (value));
}

double
TranslateTransform::GetY ()
{
	Value *value = GetValue (TranslateTransform::YProperty);
	return value->AsDouble ();
}

void
TranslateTransform::SetY (double value)
{
	SetValue (TranslateTransform::YProperty, Value (value));
}

Geometry *
UIElement::GetClip ()
{
	Value *value = GetValue (UIElement::ClipProperty);
	return value ? value->AsGeometry () : NULL;
}

void
UIElement::SetClip (Geometry * value)
{
	SetValue (UIElement::ClipProperty, Value (value));
}

MouseCursor
UIElement::GetCursor ()
{
	Value *value = GetValue (UIElement::CursorProperty);
	return (MouseCursor) value->AsInt32 ();
}

void
UIElement::SetCursor (MouseCursor value)
{
	SetValue (UIElement::CursorProperty, Value (value));
}

bool
UIElement::GetIsHitTestVisible ()
{
	Value *value = GetValue (UIElement::IsHitTestVisibleProperty);
	return value->AsBool ();
}

void
UIElement::SetIsHitTestVisible (bool value)
{
	SetValue (UIElement::IsHitTestVisibleProperty, Value (value));
}

Brush *
UIElement::GetOpacityMask ()
{
	Value *value = GetValue (UIElement::OpacityMaskProperty);
	return value ? value->AsBrush () : NULL;
}

void
UIElement::SetOpacityMask (Brush * value)
{
	SetValue (UIElement::OpacityMaskProperty, Value (value));
}

double
UIElement::GetOpacity ()
{
	Value *value = GetValue (UIElement::OpacityProperty);
	return value->AsDouble ();
}

void
UIElement::SetOpacity (double value)
{
	SetValue (UIElement::OpacityProperty, Value (value));
}

Point *
UIElement::GetRenderTransformOrigin ()
{
	Value *value = GetValue (UIElement::RenderTransformOriginProperty);
	return value ? value->AsPoint () : NULL;
}

void
UIElement::SetRenderTransformOrigin (Point * value)
{
	if (!value) return;
	SetValue (UIElement::RenderTransformOriginProperty, Value (*value));
}

Transform *
UIElement::GetRenderTransform ()
{
	Value *value = GetValue (UIElement::RenderTransformProperty);
	return value ? value->AsTransform () : NULL;
}

void
UIElement::SetRenderTransform (Transform * value)
{
	SetValue (UIElement::RenderTransformProperty, Value (value));
}

ResourceDictionary *
UIElement::GetResources ()
{
	Value *value = GetValue (UIElement::ResourcesProperty);
	return value ? value->AsResourceDictionary () : NULL;
}

void
UIElement::SetResources (ResourceDictionary * value)
{
	SetValue (UIElement::ResourcesProperty, Value (value));
}

const char *
UIElement::GetTag ()
{
	Value *value = GetValue (UIElement::TagProperty);
	return value ? value->AsString () : NULL;
}

void
UIElement::SetTag (const char * value)
{
	SetValue (UIElement::TagProperty, Value (value));
}

TriggerCollection *
UIElement::GetTriggers ()
{
	Value *value = GetValue (UIElement::TriggersProperty);
	return value ? value->AsTriggerCollection () : NULL;
}

void
UIElement::SetTriggers (TriggerCollection * value)
{
	SetValue (UIElement::TriggersProperty, Value (value));
}

Visibility
UIElement::GetVisibility ()
{
	Value *value = GetValue (UIElement::VisibilityProperty);
	return (Visibility) value->AsInt32 ();
}

void
UIElement::SetVisibility (Visibility value)
{
	SetValue (UIElement::VisibilityProperty, Value (value));
}

const char *
VideoBrush::GetSourceName ()
{
	Value *value = GetValue (VideoBrush::SourceNameProperty);
	return value ? value->AsString () : NULL;
}

void
VideoBrush::SetSourceName (const char * value)
{
	SetValue (VideoBrush::SourceNameProperty, Value (value));
}

UIElement *
VisualBrush::GetVisual ()
{
	Value *value = GetValue (VisualBrush::VisualProperty);
	return value ? value->AsUIElement () : NULL;
}

void
VisualBrush::SetVisual (UIElement * value)
{
	SetValue (VisualBrush::VisualProperty, Value (value));
}

