var Convert = 
{

    IsErrorEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ErrorEventHandler</param>
                return CheckConvertIs(",ErrorEventHandler,", javascriptObject, true);
    },

    ToErrorEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ErrorEventHandler</param>
                /// <returns type="ErrorEventHandler" />
                if (!Convert.IsErrorEventHandler(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ErrorEventHandler(javascriptObject.element)
                    else
                        return new ErrorEventHandler(javascriptObject);
                }
    },


    IsParserErrorEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ParserErrorEventHandler</param>
                return CheckConvertIs(",ParserErrorEventHandler,", javascriptObject, true);
    },

    ToParserErrorEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ParserErrorEventHandler</param>
                /// <returns type="ParserErrorEventHandler" />
                if (!Convert.IsParserErrorEventHandler(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ParserErrorEventHandler(javascriptObject.element)
                    else
                        return new ParserErrorEventHandler(javascriptObject);
                }
    },


    IsRuntimeErrorEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is RuntimeErrorEventHandler</param>
                return CheckConvertIs(",RuntimeErrorEventHandler,", javascriptObject, true);
    },

    ToRuntimeErrorEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to RuntimeErrorEventHandler</param>
                /// <returns type="RuntimeErrorEventHandler" />
                if (!Convert.IsRuntimeErrorEventHandler(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new RuntimeErrorEventHandler(javascriptObject.element)
                    else
                        return new RuntimeErrorEventHandler(javascriptObject);
                }
    },


    IsTextWrapping : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TextWrapping</param>
                return CheckConvertIs(",TextWrapping,", javascriptObject, true);
    },

    ToTextWrapping : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TextWrapping</param>
                /// <returns type="TextWrapping" />
                if (!Convert.IsTextWrapping(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TextWrapping(javascriptObject.element)
                    else
                        return new TextWrapping(javascriptObject);
                }
    },


    IsFontWeights : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is FontWeights</param>
                return CheckConvertIs(",FontWeights,", javascriptObject, true);
    },

    ToFontWeights : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to FontWeights</param>
                /// <returns type="FontWeights" />
                if (!Convert.IsFontWeights(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new FontWeights(javascriptObject.element)
                    else
                        return new FontWeights(javascriptObject);
                }
    },


    IsFontStyles : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is FontStyles</param>
                return CheckConvertIs(",FontStyles,", javascriptObject, true);
    },

    ToFontStyles : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to FontStyles</param>
                /// <returns type="FontStyles" />
                if (!Convert.IsFontStyles(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new FontStyles(javascriptObject.element)
                    else
                        return new FontStyles(javascriptObject);
                }
    },


    IsStyleSimulations : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is StyleSimulations</param>
                return CheckConvertIs(",StyleSimulations,", javascriptObject, true);
    },

    ToStyleSimulations : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to StyleSimulations</param>
                /// <returns type="StyleSimulations" />
                if (!Convert.IsStyleSimulations(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new StyleSimulations(javascriptObject.element)
                    else
                        return new StyleSimulations(javascriptObject);
                }
    },


    IsTextDecorations : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TextDecorations</param>
                return CheckConvertIs(",TextDecorations,", javascriptObject, true);
    },

    ToTextDecorations : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TextDecorations</param>
                /// <returns type="TextDecorations" />
                if (!Convert.IsTextDecorations(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TextDecorations(javascriptObject.element)
                    else
                        return new TextDecorations(javascriptObject);
                }
    },


    IsFontStretches : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is FontStretches</param>
                return CheckConvertIs(",FontStretches,", javascriptObject, true);
    },

    ToFontStretches : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to FontStretches</param>
                /// <returns type="FontStretches" />
                if (!Convert.IsFontStretches(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new FontStretches(javascriptObject.element)
                    else
                        return new FontStretches(javascriptObject);
                }
    },


    IsVisibility : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Visibility</param>
                return CheckConvertIs(",Visibility,", javascriptObject, true);
    },

    ToVisibility : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Visibility</param>
                /// <returns type="Visibility" />
                if (!Convert.IsVisibility(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Visibility(javascriptObject.element)
                    else
                        return new Visibility(javascriptObject);
                }
    },


    IsErrorType : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ErrorType</param>
                return CheckConvertIs(",ErrorType,", javascriptObject, true);
    },

    ToErrorType : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ErrorType</param>
                /// <returns type="ErrorType" />
                if (!Convert.IsErrorType(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ErrorType(javascriptObject.element)
                    else
                        return new ErrorType(javascriptObject);
                }
    },


    IsDependencyObject : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DependencyObject</param>
                return CheckConvertIs(",DependencyObject,Visual,UIElement,FrameworkElement,Collection,Inlines,TriggerCollection,EventTrigger,TriggerActionCollection,Downloader,ResourceDictionary,Stroke,StrokeCollection,DrawingAttributes,Transform,PathSegment,Brush,TileBrush,Geometry,RotateTransform,ScaleTransform,SkewTransform,TranslateTransform,TransformCollection,TransformGroup,MatrixTransform,LineSegment,BezierSegment,QuadraticBezierSegment,ArcSegment,PolyLineSegment,PolyBezierSegment,PolyQuadraticBezierSegment,PathSegmentCollection,PathFigure,PathFigureCollection,PathGeometry,EllipseGeometry,RectangleGeometry,LineGeometry,GeometryCollection,GeometryGroup,SolidColorBrush,GradientStop,GradientStopCollection,GradientBrush,LinearGradientBrush,RadialGradientBrush,ImageBrush,VideoBrush,VisualCollection,TimelineCollection,MediaAttribute,MediaAttributeCollection,Timeline,TimelineGroup,ParallelTimeline,BeginStoryboard,Storyboard,Animation,DoubleAnimation,ColorAnimation,PointAnimation,KeySpline,KeyFrame,ColorKeyFrameCollection,DoubleKeyFrameCollection,PointKeyFrameCollection,DoubleAnimationUsingKeyFrames,DoubleKeyFrame,DiscreteDoubleKeyFrame,LinearDoubleKeyFrame,SplineDoubleKeyFrame,ColorAnimationUsingKeyFrames,ColorKeyFrame,DiscreteColorKeyFrame,LinearColorKeyFrame,SplineColorKeyFrame,PointAnimationUsingKeyFrames,PointKeyFrame,DiscretePointKeyFrame,LinearPointKeyFrame,SplinePointKeyFrame,TimelineMarker,TimelineMarkerCollection,StylusPoint,StylusPointCollection,StylusInfo,Shape,Path,Ellipse,Line,Polygon,Polyline,Rectangle,Inline,Glyphs,Run,LineBreak,Panel,MediaBase,ImageSL,Canvas,TextBlock,MediaElement,InkPresenter,Control,", javascriptObject, true);
    },

    ToDependencyObject : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DependencyObject</param>
                /// <returns type="DependencyObject" />
                if (!Convert.IsDependencyObject(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DependencyObject(javascriptObject.element)
                    else
                        return new DependencyObject(javascriptObject);
                }
    },


    IsVisual : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Visual</param>
                return CheckConvertIs(",Visual,UIElement,FrameworkElement,Shape,Path,Ellipse,Line,Polygon,Polyline,Rectangle,Glyphs,Panel,MediaBase,ImageSL,Canvas,TextBlock,MediaElement,InkPresenter,Control,", javascriptObject, false);
    },

    ToVisual : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Visual</param>
                /// <returns type="Visual" />
                if (!Convert.IsVisual(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Visual(javascriptObject.element)
                    else
                        return new Visual(javascriptObject);
                }
    },


    IsUIElement : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is UIElement</param>
                return CheckConvertIs(",UIElement,FrameworkElement,Shape,Path,Ellipse,Line,Polygon,Polyline,Rectangle,Glyphs,Panel,MediaBase,ImageSL,Canvas,TextBlock,MediaElement,InkPresenter,Control,", javascriptObject, false);
    },

    ToUIElement : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to UIElement</param>
                /// <returns type="UIElement" />
                if (!Convert.IsUIElement(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new UIElement(javascriptObject.element)
                    else
                        return new UIElement(javascriptObject);
                }
    },


    IsFrameworkElement : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is FrameworkElement</param>
                return CheckConvertIs(",FrameworkElement,Shape,Path,Ellipse,Line,Polygon,Polyline,Rectangle,Glyphs,Panel,MediaBase,ImageSL,Canvas,TextBlock,MediaElement,InkPresenter,Control,", javascriptObject, false);
    },

    ToFrameworkElement : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to FrameworkElement</param>
                /// <returns type="FrameworkElement" />
                if (!Convert.IsFrameworkElement(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new FrameworkElement(javascriptObject.element)
                    else
                        return new FrameworkElement(javascriptObject);
                }
    },


    IsCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Collection</param>
                return CheckConvertIs(",Collection,", javascriptObject, false);
    },

    ToCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Collection</param>
                /// <returns type="Collection" />
                if (!Convert.IsCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Collection(javascriptObject.element)
                    else
                        return new Collection(javascriptObject);
                }
    },


    IsInlines : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Inlines</param>
                return CheckConvertIs(",Inlines,", javascriptObject, false);
    },

    ToInlines : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Inlines</param>
                /// <returns type="Inlines" />
                if (!Convert.IsInlines(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Inlines(javascriptObject.element)
                    else
                        return new Inlines(javascriptObject);
                }
    },


    IsTriggerCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TriggerCollection</param>
                return CheckConvertIs(",TriggerCollection,", javascriptObject, false);
    },

    ToTriggerCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TriggerCollection</param>
                /// <returns type="TriggerCollection" />
                if (!Convert.IsTriggerCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TriggerCollection(javascriptObject.element)
                    else
                        return new TriggerCollection(javascriptObject);
                }
    },


    IsEventTrigger : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is EventTrigger</param>
                return CheckConvertIs(",EventTrigger,", javascriptObject, false);
    },

    ToEventTrigger : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to EventTrigger</param>
                /// <returns type="EventTrigger" />
                if (!Convert.IsEventTrigger(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new EventTrigger(javascriptObject.element)
                    else
                        return new EventTrigger(javascriptObject);
                }
    },


    IsTriggerActionCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TriggerActionCollection</param>
                return CheckConvertIs(",TriggerActionCollection,", javascriptObject, false);
    },

    ToTriggerActionCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TriggerActionCollection</param>
                /// <returns type="TriggerActionCollection" />
                if (!Convert.IsTriggerActionCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TriggerActionCollection(javascriptObject.element)
                    else
                        return new TriggerActionCollection(javascriptObject);
                }
    },


    IsErrorEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ErrorEventArgs</param>
                return CheckConvertIs(",ErrorEventArgs,ParserErrorEventArgs,RuntimeErrorEventArgs,", javascriptObject, true);
    },

    ToErrorEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ErrorEventArgs</param>
                /// <returns type="ErrorEventArgs" />
                if (!Convert.IsErrorEventArgs(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ErrorEventArgs(javascriptObject.element)
                    else
                        return new ErrorEventArgs(javascriptObject);
                }
    },


    IsParserErrorEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ParserErrorEventArgs</param>
                return CheckConvertIs(",ParserErrorEventArgs,", javascriptObject, true);
    },

    ToParserErrorEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ParserErrorEventArgs</param>
                /// <returns type="ParserErrorEventArgs" />
                if (!Convert.IsParserErrorEventArgs(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ParserErrorEventArgs(javascriptObject.element)
                    else
                        return new ParserErrorEventArgs(javascriptObject);
                }
    },


    IsRuntimeErrorEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is RuntimeErrorEventArgs</param>
                return CheckConvertIs(",RuntimeErrorEventArgs,", javascriptObject, true);
    },

    ToRuntimeErrorEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to RuntimeErrorEventArgs</param>
                /// <returns type="RuntimeErrorEventArgs" />
                if (!Convert.IsRuntimeErrorEventArgs(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new RuntimeErrorEventArgs(javascriptObject.element)
                    else
                        return new RuntimeErrorEventArgs(javascriptObject);
                }
    },


    IsDownloader : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Downloader</param>
                return CheckConvertIs(",Downloader,", javascriptObject, false);
    },

    ToDownloader : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Downloader</param>
                /// <returns type="Downloader" />
                if (!Convert.IsDownloader(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Downloader(javascriptObject.element)
                    else
                        return new Downloader(javascriptObject);
                }
    },


    IsResourceDictionary : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ResourceDictionary</param>
                return CheckConvertIs(",ResourceDictionary,", javascriptObject, false);
    },

    ToResourceDictionary : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ResourceDictionary</param>
                /// <returns type="ResourceDictionary" />
                if (!Convert.IsResourceDictionary(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ResourceDictionary(javascriptObject.element)
                    else
                        return new ResourceDictionary(javascriptObject);
                }
    },


    IsStroke : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Stroke</param>
                return CheckConvertIs(",Stroke,", javascriptObject, false);
    },

    ToStroke : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Stroke</param>
                /// <returns type="Stroke" />
                if (!Convert.IsStroke(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Stroke(javascriptObject.element)
                    else
                        return new Stroke(javascriptObject);
                }
    },


    IsStrokeCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is StrokeCollection</param>
                return CheckConvertIs(",StrokeCollection,", javascriptObject, false);
    },

    ToStrokeCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to StrokeCollection</param>
                /// <returns type="StrokeCollection" />
                if (!Convert.IsStrokeCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new StrokeCollection(javascriptObject.element)
                    else
                        return new StrokeCollection(javascriptObject);
                }
    },


    IsDrawingAttributes : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DrawingAttributes</param>
                return CheckConvertIs(",DrawingAttributes,", javascriptObject, false);
    },

    ToDrawingAttributes : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DrawingAttributes</param>
                /// <returns type="DrawingAttributes" />
                if (!Convert.IsDrawingAttributes(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DrawingAttributes(javascriptObject.element)
                    else
                        return new DrawingAttributes(javascriptObject);
                }
    },


    IsFillRule : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is FillRule</param>
                return CheckConvertIs(",FillRule,", javascriptObject, true);
    },

    ToFillRule : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to FillRule</param>
                /// <returns type="FillRule" />
                if (!Convert.IsFillRule(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new FillRule(javascriptObject.element)
                    else
                        return new FillRule(javascriptObject);
                }
    },


    IsSweepDirection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is SweepDirection</param>
                return CheckConvertIs(",SweepDirection,", javascriptObject, true);
    },

    ToSweepDirection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to SweepDirection</param>
                /// <returns type="SweepDirection" />
                if (!Convert.IsSweepDirection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new SweepDirection(javascriptObject.element)
                    else
                        return new SweepDirection(javascriptObject);
                }
    },


    IsGradientSpreadMethod : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is GradientSpreadMethod</param>
                return CheckConvertIs(",GradientSpreadMethod,", javascriptObject, true);
    },

    ToGradientSpreadMethod : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to GradientSpreadMethod</param>
                /// <returns type="GradientSpreadMethod" />
                if (!Convert.IsGradientSpreadMethod(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new GradientSpreadMethod(javascriptObject.element)
                    else
                        return new GradientSpreadMethod(javascriptObject);
                }
    },


    IsColorInterpolationMode : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ColorInterpolationMode</param>
                return CheckConvertIs(",ColorInterpolationMode,", javascriptObject, true);
    },

    ToColorInterpolationMode : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ColorInterpolationMode</param>
                /// <returns type="ColorInterpolationMode" />
                if (!Convert.IsColorInterpolationMode(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ColorInterpolationMode(javascriptObject.element)
                    else
                        return new ColorInterpolationMode(javascriptObject);
                }
    },


    IsBrushMappingMode : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is BrushMappingMode</param>
                return CheckConvertIs(",BrushMappingMode,", javascriptObject, true);
    },

    ToBrushMappingMode : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to BrushMappingMode</param>
                /// <returns type="BrushMappingMode" />
                if (!Convert.IsBrushMappingMode(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new BrushMappingMode(javascriptObject.element)
                    else
                        return new BrushMappingMode(javascriptObject);
                }
    },


    IsAlignmentX : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is AlignmentX</param>
                return CheckConvertIs(",AlignmentX,", javascriptObject, true);
    },

    ToAlignmentX : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to AlignmentX</param>
                /// <returns type="AlignmentX" />
                if (!Convert.IsAlignmentX(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new AlignmentX(javascriptObject.element)
                    else
                        return new AlignmentX(javascriptObject);
                }
    },


    IsAlignmentY : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is AlignmentY</param>
                return CheckConvertIs(",AlignmentY,", javascriptObject, true);
    },

    ToAlignmentY : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to AlignmentY</param>
                /// <returns type="AlignmentY" />
                if (!Convert.IsAlignmentY(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new AlignmentY(javascriptObject.element)
                    else
                        return new AlignmentY(javascriptObject);
                }
    },


    IsStretch : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Stretch</param>
                return CheckConvertIs(",Stretch,", javascriptObject, true);
    },

    ToStretch : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Stretch</param>
                /// <returns type="Stretch" />
                if (!Convert.IsStretch(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Stretch(javascriptObject.element)
                    else
                        return new Stretch(javascriptObject);
                }
    },


    IsPenLineCap : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PenLineCap</param>
                return CheckConvertIs(",PenLineCap,", javascriptObject, true);
    },

    ToPenLineCap : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PenLineCap</param>
                /// <returns type="PenLineCap" />
                if (!Convert.IsPenLineCap(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PenLineCap(javascriptObject.element)
                    else
                        return new PenLineCap(javascriptObject);
                }
    },


    IsPenLineJoin : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PenLineJoin</param>
                return CheckConvertIs(",PenLineJoin,", javascriptObject, true);
    },

    ToPenLineJoin : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PenLineJoin</param>
                /// <returns type="PenLineJoin" />
                if (!Convert.IsPenLineJoin(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PenLineJoin(javascriptObject.element)
                    else
                        return new PenLineJoin(javascriptObject);
                }
    },


    IsTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Transform</param>
                return CheckConvertIs(",Transform,RotateTransform,ScaleTransform,SkewTransform,TranslateTransform,TransformGroup,MatrixTransform,", javascriptObject, false);
    },

    ToTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Transform</param>
                /// <returns type="Transform" />
                if (!Convert.IsTransform(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Transform(javascriptObject.element)
                    else
                        return new Transform(javascriptObject);
                }
    },


    IsPathSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PathSegment</param>
                return CheckConvertIs(",PathSegment,LineSegment,BezierSegment,QuadraticBezierSegment,ArcSegment,PolyLineSegment,PolyBezierSegment,PolyQuadraticBezierSegment,", javascriptObject, false);
    },

    ToPathSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PathSegment</param>
                /// <returns type="PathSegment" />
                if (!Convert.IsPathSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PathSegment(javascriptObject.element)
                    else
                        return new PathSegment(javascriptObject);
                }
    },


    IsBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Brush</param>
                return CheckConvertIs(",Brush,TileBrush,SolidColorBrush,GradientBrush,LinearGradientBrush,RadialGradientBrush,ImageBrush,VideoBrush,", javascriptObject, false);
    },

    ToBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Brush</param>
                /// <returns type="Brush" />
                if (!Convert.IsBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Brush(javascriptObject.element)
                    else
                        return new Brush(javascriptObject);
                }
    },


    IsTileBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TileBrush</param>
                return CheckConvertIs(",TileBrush,ImageBrush,VideoBrush,", javascriptObject, false);
    },

    ToTileBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TileBrush</param>
                /// <returns type="TileBrush" />
                if (!Convert.IsTileBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TileBrush(javascriptObject.element)
                    else
                        return new TileBrush(javascriptObject);
                }
    },


    IsGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Geometry</param>
                return CheckConvertIs(",Geometry,PathGeometry,EllipseGeometry,RectangleGeometry,LineGeometry,GeometryGroup,", javascriptObject, false);
    },

    ToGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Geometry</param>
                /// <returns type="Geometry" />
                if (!Convert.IsGeometry(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Geometry(javascriptObject.element)
                    else
                        return new Geometry(javascriptObject);
                }
    },


    IsRotateTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is RotateTransform</param>
                return CheckConvertIs(",RotateTransform,", javascriptObject, false);
    },

    ToRotateTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to RotateTransform</param>
                /// <returns type="RotateTransform" />
                if (!Convert.IsRotateTransform(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new RotateTransform(javascriptObject.element)
                    else
                        return new RotateTransform(javascriptObject);
                }
    },


    IsScaleTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ScaleTransform</param>
                return CheckConvertIs(",ScaleTransform,", javascriptObject, false);
    },

    ToScaleTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ScaleTransform</param>
                /// <returns type="ScaleTransform" />
                if (!Convert.IsScaleTransform(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ScaleTransform(javascriptObject.element)
                    else
                        return new ScaleTransform(javascriptObject);
                }
    },


    IsSkewTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is SkewTransform</param>
                return CheckConvertIs(",SkewTransform,", javascriptObject, false);
    },

    ToSkewTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to SkewTransform</param>
                /// <returns type="SkewTransform" />
                if (!Convert.IsSkewTransform(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new SkewTransform(javascriptObject.element)
                    else
                        return new SkewTransform(javascriptObject);
                }
    },


    IsTranslateTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TranslateTransform</param>
                return CheckConvertIs(",TranslateTransform,", javascriptObject, false);
    },

    ToTranslateTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TranslateTransform</param>
                /// <returns type="TranslateTransform" />
                if (!Convert.IsTranslateTransform(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TranslateTransform(javascriptObject.element)
                    else
                        return new TranslateTransform(javascriptObject);
                }
    },


    IsTransformCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TransformCollection</param>
                return CheckConvertIs(",TransformCollection,", javascriptObject, false);
    },

    ToTransformCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TransformCollection</param>
                /// <returns type="TransformCollection" />
                if (!Convert.IsTransformCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TransformCollection(javascriptObject.element)
                    else
                        return new TransformCollection(javascriptObject);
                }
    },


    IsTransformGroup : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TransformGroup</param>
                return CheckConvertIs(",TransformGroup,", javascriptObject, false);
    },

    ToTransformGroup : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TransformGroup</param>
                /// <returns type="TransformGroup" />
                if (!Convert.IsTransformGroup(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TransformGroup(javascriptObject.element)
                    else
                        return new TransformGroup(javascriptObject);
                }
    },


    IsMatrixTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is MatrixTransform</param>
                return CheckConvertIs(",MatrixTransform,", javascriptObject, false);
    },

    ToMatrixTransform : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to MatrixTransform</param>
                /// <returns type="MatrixTransform" />
                if (!Convert.IsMatrixTransform(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new MatrixTransform(javascriptObject.element)
                    else
                        return new MatrixTransform(javascriptObject);
                }
    },


    IsLineSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is LineSegment</param>
                return CheckConvertIs(",LineSegment,", javascriptObject, false);
    },

    ToLineSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to LineSegment</param>
                /// <returns type="LineSegment" />
                if (!Convert.IsLineSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new LineSegment(javascriptObject.element)
                    else
                        return new LineSegment(javascriptObject);
                }
    },


    IsBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is BezierSegment</param>
                return CheckConvertIs(",BezierSegment,", javascriptObject, false);
    },

    ToBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to BezierSegment</param>
                /// <returns type="BezierSegment" />
                if (!Convert.IsBezierSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new BezierSegment(javascriptObject.element)
                    else
                        return new BezierSegment(javascriptObject);
                }
    },


    IsQuadraticBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is QuadraticBezierSegment</param>
                return CheckConvertIs(",QuadraticBezierSegment,", javascriptObject, false);
    },

    ToQuadraticBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to QuadraticBezierSegment</param>
                /// <returns type="QuadraticBezierSegment" />
                if (!Convert.IsQuadraticBezierSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new QuadraticBezierSegment(javascriptObject.element)
                    else
                        return new QuadraticBezierSegment(javascriptObject);
                }
    },


    IsArcSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ArcSegment</param>
                return CheckConvertIs(",ArcSegment,", javascriptObject, false);
    },

    ToArcSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ArcSegment</param>
                /// <returns type="ArcSegment" />
                if (!Convert.IsArcSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ArcSegment(javascriptObject.element)
                    else
                        return new ArcSegment(javascriptObject);
                }
    },


    IsPolyLineSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PolyLineSegment</param>
                return CheckConvertIs(",PolyLineSegment,", javascriptObject, false);
    },

    ToPolyLineSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PolyLineSegment</param>
                /// <returns type="PolyLineSegment" />
                if (!Convert.IsPolyLineSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PolyLineSegment(javascriptObject.element)
                    else
                        return new PolyLineSegment(javascriptObject);
                }
    },


    IsPolyBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PolyBezierSegment</param>
                return CheckConvertIs(",PolyBezierSegment,", javascriptObject, false);
    },

    ToPolyBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PolyBezierSegment</param>
                /// <returns type="PolyBezierSegment" />
                if (!Convert.IsPolyBezierSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PolyBezierSegment(javascriptObject.element)
                    else
                        return new PolyBezierSegment(javascriptObject);
                }
    },


    IsPolyQuadraticBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PolyQuadraticBezierSegment</param>
                return CheckConvertIs(",PolyQuadraticBezierSegment,", javascriptObject, false);
    },

    ToPolyQuadraticBezierSegment : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PolyQuadraticBezierSegment</param>
                /// <returns type="PolyQuadraticBezierSegment" />
                if (!Convert.IsPolyQuadraticBezierSegment(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PolyQuadraticBezierSegment(javascriptObject.element)
                    else
                        return new PolyQuadraticBezierSegment(javascriptObject);
                }
    },


    IsPathSegmentCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PathSegmentCollection</param>
                return CheckConvertIs(",PathSegmentCollection,", javascriptObject, false);
    },

    ToPathSegmentCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PathSegmentCollection</param>
                /// <returns type="PathSegmentCollection" />
                if (!Convert.IsPathSegmentCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PathSegmentCollection(javascriptObject.element)
                    else
                        return new PathSegmentCollection(javascriptObject);
                }
    },


    IsPathFigure : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PathFigure</param>
                return CheckConvertIs(",PathFigure,", javascriptObject, false);
    },

    ToPathFigure : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PathFigure</param>
                /// <returns type="PathFigure" />
                if (!Convert.IsPathFigure(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PathFigure(javascriptObject.element)
                    else
                        return new PathFigure(javascriptObject);
                }
    },


    IsPathFigureCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PathFigureCollection</param>
                return CheckConvertIs(",PathFigureCollection,", javascriptObject, false);
    },

    ToPathFigureCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PathFigureCollection</param>
                /// <returns type="PathFigureCollection" />
                if (!Convert.IsPathFigureCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PathFigureCollection(javascriptObject.element)
                    else
                        return new PathFigureCollection(javascriptObject);
                }
    },


    IsPathGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PathGeometry</param>
                return CheckConvertIs(",PathGeometry,", javascriptObject, false);
    },

    ToPathGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PathGeometry</param>
                /// <returns type="PathGeometry" />
                if (!Convert.IsPathGeometry(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PathGeometry(javascriptObject.element)
                    else
                        return new PathGeometry(javascriptObject);
                }
    },


    IsEllipseGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is EllipseGeometry</param>
                return CheckConvertIs(",EllipseGeometry,", javascriptObject, false);
    },

    ToEllipseGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to EllipseGeometry</param>
                /// <returns type="EllipseGeometry" />
                if (!Convert.IsEllipseGeometry(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new EllipseGeometry(javascriptObject.element)
                    else
                        return new EllipseGeometry(javascriptObject);
                }
    },


    IsRectangleGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is RectangleGeometry</param>
                return CheckConvertIs(",RectangleGeometry,", javascriptObject, false);
    },

    ToRectangleGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to RectangleGeometry</param>
                /// <returns type="RectangleGeometry" />
                if (!Convert.IsRectangleGeometry(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new RectangleGeometry(javascriptObject.element)
                    else
                        return new RectangleGeometry(javascriptObject);
                }
    },


    IsLineGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is LineGeometry</param>
                return CheckConvertIs(",LineGeometry,", javascriptObject, false);
    },

    ToLineGeometry : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to LineGeometry</param>
                /// <returns type="LineGeometry" />
                if (!Convert.IsLineGeometry(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new LineGeometry(javascriptObject.element)
                    else
                        return new LineGeometry(javascriptObject);
                }
    },


    IsGeometryCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is GeometryCollection</param>
                return CheckConvertIs(",GeometryCollection,", javascriptObject, false);
    },

    ToGeometryCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to GeometryCollection</param>
                /// <returns type="GeometryCollection" />
                if (!Convert.IsGeometryCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new GeometryCollection(javascriptObject.element)
                    else
                        return new GeometryCollection(javascriptObject);
                }
    },


    IsGeometryGroup : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is GeometryGroup</param>
                return CheckConvertIs(",GeometryGroup,", javascriptObject, false);
    },

    ToGeometryGroup : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to GeometryGroup</param>
                /// <returns type="GeometryGroup" />
                if (!Convert.IsGeometryGroup(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new GeometryGroup(javascriptObject.element)
                    else
                        return new GeometryGroup(javascriptObject);
                }
    },


    IsSolidColorBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is SolidColorBrush</param>
                return CheckConvertIs(",SolidColorBrush,", javascriptObject, false);
    },

    ToSolidColorBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to SolidColorBrush</param>
                /// <returns type="SolidColorBrush" />
                if (!Convert.IsSolidColorBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new SolidColorBrush(javascriptObject.element)
                    else
                        return new SolidColorBrush(javascriptObject);
                }
    },


    IsGradientStop : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is GradientStop</param>
                return CheckConvertIs(",GradientStop,", javascriptObject, false);
    },

    ToGradientStop : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to GradientStop</param>
                /// <returns type="GradientStop" />
                if (!Convert.IsGradientStop(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new GradientStop(javascriptObject.element)
                    else
                        return new GradientStop(javascriptObject);
                }
    },


    IsGradientStopCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is GradientStopCollection</param>
                return CheckConvertIs(",GradientStopCollection,", javascriptObject, false);
    },

    ToGradientStopCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to GradientStopCollection</param>
                /// <returns type="GradientStopCollection" />
                if (!Convert.IsGradientStopCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new GradientStopCollection(javascriptObject.element)
                    else
                        return new GradientStopCollection(javascriptObject);
                }
    },


    IsGradientBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is GradientBrush</param>
                return CheckConvertIs(",GradientBrush,LinearGradientBrush,RadialGradientBrush,", javascriptObject, false);
    },

    ToGradientBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to GradientBrush</param>
                /// <returns type="GradientBrush" />
                if (!Convert.IsGradientBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new GradientBrush(javascriptObject.element)
                    else
                        return new GradientBrush(javascriptObject);
                }
    },


    IsLinearGradientBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is LinearGradientBrush</param>
                return CheckConvertIs(",LinearGradientBrush,", javascriptObject, false);
    },

    ToLinearGradientBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to LinearGradientBrush</param>
                /// <returns type="LinearGradientBrush" />
                if (!Convert.IsLinearGradientBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new LinearGradientBrush(javascriptObject.element)
                    else
                        return new LinearGradientBrush(javascriptObject);
                }
    },


    IsRadialGradientBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is RadialGradientBrush</param>
                return CheckConvertIs(",RadialGradientBrush,", javascriptObject, false);
    },

    ToRadialGradientBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to RadialGradientBrush</param>
                /// <returns type="RadialGradientBrush" />
                if (!Convert.IsRadialGradientBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new RadialGradientBrush(javascriptObject.element)
                    else
                        return new RadialGradientBrush(javascriptObject);
                }
    },


    IsImageBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ImageBrush</param>
                return CheckConvertIs(",ImageBrush,", javascriptObject, false);
    },

    ToImageBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ImageBrush</param>
                /// <returns type="ImageBrush" />
                if (!Convert.IsImageBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ImageBrush(javascriptObject.element)
                    else
                        return new ImageBrush(javascriptObject);
                }
    },


    IsVideoBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is VideoBrush</param>
                return CheckConvertIs(",VideoBrush,", javascriptObject, false);
    },

    ToVideoBrush : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to VideoBrush</param>
                /// <returns type="VideoBrush" />
                if (!Convert.IsVideoBrush(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new VideoBrush(javascriptObject.element)
                    else
                        return new VideoBrush(javascriptObject);
                }
    },


    IsVisualCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is VisualCollection</param>
                return CheckConvertIs(",VisualCollection,", javascriptObject, false);
    },

    ToVisualCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to VisualCollection</param>
                /// <returns type="VisualCollection" />
                if (!Convert.IsVisualCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new VisualCollection(javascriptObject.element)
                    else
                        return new VisualCollection(javascriptObject);
                }
    },


    IsTimelineCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TimelineCollection</param>
                return CheckConvertIs(",TimelineCollection,", javascriptObject, false);
    },

    ToTimelineCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TimelineCollection</param>
                /// <returns type="TimelineCollection" />
                if (!Convert.IsTimelineCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TimelineCollection(javascriptObject.element)
                    else
                        return new TimelineCollection(javascriptObject);
                }
    },


    IsMediaAttribute : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is MediaAttribute</param>
                return CheckConvertIs(",MediaAttribute,", javascriptObject, false);
    },

    ToMediaAttribute : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to MediaAttribute</param>
                /// <returns type="MediaAttribute" />
                if (!Convert.IsMediaAttribute(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new MediaAttribute(javascriptObject.element)
                    else
                        return new MediaAttribute(javascriptObject);
                }
    },


    IsMediaAttributeCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is MediaAttributeCollection</param>
                return CheckConvertIs(",MediaAttributeCollection,", javascriptObject, false);
    },

    ToMediaAttributeCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to MediaAttributeCollection</param>
                /// <returns type="MediaAttributeCollection" />
                if (!Convert.IsMediaAttributeCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new MediaAttributeCollection(javascriptObject.element)
                    else
                        return new MediaAttributeCollection(javascriptObject);
                }
    },


    IsFillBehavior : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is FillBehavior</param>
                return CheckConvertIs(",FillBehavior,", javascriptObject, true);
    },

    ToFillBehavior : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to FillBehavior</param>
                /// <returns type="FillBehavior" />
                if (!Convert.IsFillBehavior(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new FillBehavior(javascriptObject.element)
                    else
                        return new FillBehavior(javascriptObject);
                }
    },


    IsTimeline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Timeline</param>
                return CheckConvertIs(",Timeline,TimelineGroup,ParallelTimeline,Storyboard,Animation,DoubleAnimation,ColorAnimation,PointAnimation,DoubleAnimationUsingKeyFrames,ColorAnimationUsingKeyFrames,PointAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToTimeline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Timeline</param>
                /// <returns type="Timeline" />
                if (!Convert.IsTimeline(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Timeline(javascriptObject.element)
                    else
                        return new Timeline(javascriptObject);
                }
    },


    IsTimelineGroup : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TimelineGroup</param>
                return CheckConvertIs(",TimelineGroup,ParallelTimeline,Storyboard,", javascriptObject, false);
    },

    ToTimelineGroup : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TimelineGroup</param>
                /// <returns type="TimelineGroup" />
                if (!Convert.IsTimelineGroup(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TimelineGroup(javascriptObject.element)
                    else
                        return new TimelineGroup(javascriptObject);
                }
    },


    IsParallelTimeline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ParallelTimeline</param>
                return CheckConvertIs(",ParallelTimeline,Storyboard,", javascriptObject, false);
    },

    ToParallelTimeline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ParallelTimeline</param>
                /// <returns type="ParallelTimeline" />
                if (!Convert.IsParallelTimeline(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ParallelTimeline(javascriptObject.element)
                    else
                        return new ParallelTimeline(javascriptObject);
                }
    },


    IsBeginStoryboard : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is BeginStoryboard</param>
                return CheckConvertIs(",BeginStoryboard,", javascriptObject, false);
    },

    ToBeginStoryboard : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to BeginStoryboard</param>
                /// <returns type="BeginStoryboard" />
                if (!Convert.IsBeginStoryboard(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new BeginStoryboard(javascriptObject.element)
                    else
                        return new BeginStoryboard(javascriptObject);
                }
    },


    IsStoryboard : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Storyboard</param>
                return CheckConvertIs(",Storyboard,", javascriptObject, false);
    },

    ToStoryboard : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Storyboard</param>
                /// <returns type="Storyboard" />
                if (!Convert.IsStoryboard(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Storyboard(javascriptObject.element)
                    else
                        return new Storyboard(javascriptObject);
                }
    },


    IsAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Animation</param>
                return CheckConvertIs(",Animation,DoubleAnimation,ColorAnimation,PointAnimation,DoubleAnimationUsingKeyFrames,ColorAnimationUsingKeyFrames,PointAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Animation</param>
                /// <returns type="Animation" />
                if (!Convert.IsAnimation(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Animation(javascriptObject.element)
                    else
                        return new Animation(javascriptObject);
                }
    },


    IsDoubleAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DoubleAnimation</param>
                return CheckConvertIs(",DoubleAnimation,DoubleAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToDoubleAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DoubleAnimation</param>
                /// <returns type="DoubleAnimation" />
                if (!Convert.IsDoubleAnimation(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DoubleAnimation(javascriptObject.element)
                    else
                        return new DoubleAnimation(javascriptObject);
                }
    },


    IsColorAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ColorAnimation</param>
                return CheckConvertIs(",ColorAnimation,ColorAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToColorAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ColorAnimation</param>
                /// <returns type="ColorAnimation" />
                if (!Convert.IsColorAnimation(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ColorAnimation(javascriptObject.element)
                    else
                        return new ColorAnimation(javascriptObject);
                }
    },


    IsPointAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PointAnimation</param>
                return CheckConvertIs(",PointAnimation,PointAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToPointAnimation : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PointAnimation</param>
                /// <returns type="PointAnimation" />
                if (!Convert.IsPointAnimation(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PointAnimation(javascriptObject.element)
                    else
                        return new PointAnimation(javascriptObject);
                }
    },


    IsKeySpline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is KeySpline</param>
                return CheckConvertIs(",KeySpline,", javascriptObject, false);
    },

    ToKeySpline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to KeySpline</param>
                /// <returns type="KeySpline" />
                if (!Convert.IsKeySpline(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new KeySpline(javascriptObject.element)
                    else
                        return new KeySpline(javascriptObject);
                }
    },


    IsKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is KeyFrame</param>
                return CheckConvertIs(",KeyFrame,DoubleKeyFrame,DiscreteDoubleKeyFrame,LinearDoubleKeyFrame,SplineDoubleKeyFrame,ColorKeyFrame,DiscreteColorKeyFrame,LinearColorKeyFrame,SplineColorKeyFrame,PointKeyFrame,DiscretePointKeyFrame,LinearPointKeyFrame,SplinePointKeyFrame,", javascriptObject, false);
    },

    ToKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to KeyFrame</param>
                /// <returns type="KeyFrame" />
                if (!Convert.IsKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new KeyFrame(javascriptObject.element)
                    else
                        return new KeyFrame(javascriptObject);
                }
    },


    IsColorKeyFrameCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ColorKeyFrameCollection</param>
                return CheckConvertIs(",ColorKeyFrameCollection,", javascriptObject, false);
    },

    ToColorKeyFrameCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ColorKeyFrameCollection</param>
                /// <returns type="ColorKeyFrameCollection" />
                if (!Convert.IsColorKeyFrameCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ColorKeyFrameCollection(javascriptObject.element)
                    else
                        return new ColorKeyFrameCollection(javascriptObject);
                }
    },


    IsDoubleKeyFrameCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DoubleKeyFrameCollection</param>
                return CheckConvertIs(",DoubleKeyFrameCollection,", javascriptObject, false);
    },

    ToDoubleKeyFrameCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DoubleKeyFrameCollection</param>
                /// <returns type="DoubleKeyFrameCollection" />
                if (!Convert.IsDoubleKeyFrameCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DoubleKeyFrameCollection(javascriptObject.element)
                    else
                        return new DoubleKeyFrameCollection(javascriptObject);
                }
    },


    IsPointKeyFrameCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PointKeyFrameCollection</param>
                return CheckConvertIs(",PointKeyFrameCollection,", javascriptObject, false);
    },

    ToPointKeyFrameCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PointKeyFrameCollection</param>
                /// <returns type="PointKeyFrameCollection" />
                if (!Convert.IsPointKeyFrameCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PointKeyFrameCollection(javascriptObject.element)
                    else
                        return new PointKeyFrameCollection(javascriptObject);
                }
    },


    IsDoubleAnimationUsingKeyFrames : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DoubleAnimationUsingKeyFrames</param>
                return CheckConvertIs(",DoubleAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToDoubleAnimationUsingKeyFrames : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DoubleAnimationUsingKeyFrames</param>
                /// <returns type="DoubleAnimationUsingKeyFrames" />
                if (!Convert.IsDoubleAnimationUsingKeyFrames(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DoubleAnimationUsingKeyFrames(javascriptObject.element)
                    else
                        return new DoubleAnimationUsingKeyFrames(javascriptObject);
                }
    },


    IsDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DoubleKeyFrame</param>
                return CheckConvertIs(",DoubleKeyFrame,DiscreteDoubleKeyFrame,LinearDoubleKeyFrame,SplineDoubleKeyFrame,", javascriptObject, false);
    },

    ToDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DoubleKeyFrame</param>
                /// <returns type="DoubleKeyFrame" />
                if (!Convert.IsDoubleKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DoubleKeyFrame(javascriptObject.element)
                    else
                        return new DoubleKeyFrame(javascriptObject);
                }
    },


    IsDiscreteDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DiscreteDoubleKeyFrame</param>
                return CheckConvertIs(",DiscreteDoubleKeyFrame,", javascriptObject, false);
    },

    ToDiscreteDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DiscreteDoubleKeyFrame</param>
                /// <returns type="DiscreteDoubleKeyFrame" />
                if (!Convert.IsDiscreteDoubleKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DiscreteDoubleKeyFrame(javascriptObject.element)
                    else
                        return new DiscreteDoubleKeyFrame(javascriptObject);
                }
    },


    IsLinearDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is LinearDoubleKeyFrame</param>
                return CheckConvertIs(",LinearDoubleKeyFrame,", javascriptObject, false);
    },

    ToLinearDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to LinearDoubleKeyFrame</param>
                /// <returns type="LinearDoubleKeyFrame" />
                if (!Convert.IsLinearDoubleKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new LinearDoubleKeyFrame(javascriptObject.element)
                    else
                        return new LinearDoubleKeyFrame(javascriptObject);
                }
    },


    IsSplineDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is SplineDoubleKeyFrame</param>
                return CheckConvertIs(",SplineDoubleKeyFrame,", javascriptObject, false);
    },

    ToSplineDoubleKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to SplineDoubleKeyFrame</param>
                /// <returns type="SplineDoubleKeyFrame" />
                if (!Convert.IsSplineDoubleKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new SplineDoubleKeyFrame(javascriptObject.element)
                    else
                        return new SplineDoubleKeyFrame(javascriptObject);
                }
    },


    IsColorAnimationUsingKeyFrames : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ColorAnimationUsingKeyFrames</param>
                return CheckConvertIs(",ColorAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToColorAnimationUsingKeyFrames : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ColorAnimationUsingKeyFrames</param>
                /// <returns type="ColorAnimationUsingKeyFrames" />
                if (!Convert.IsColorAnimationUsingKeyFrames(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ColorAnimationUsingKeyFrames(javascriptObject.element)
                    else
                        return new ColorAnimationUsingKeyFrames(javascriptObject);
                }
    },


    IsColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ColorKeyFrame</param>
                return CheckConvertIs(",ColorKeyFrame,DiscreteColorKeyFrame,LinearColorKeyFrame,SplineColorKeyFrame,", javascriptObject, false);
    },

    ToColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ColorKeyFrame</param>
                /// <returns type="ColorKeyFrame" />
                if (!Convert.IsColorKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ColorKeyFrame(javascriptObject.element)
                    else
                        return new ColorKeyFrame(javascriptObject);
                }
    },


    IsDiscreteColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DiscreteColorKeyFrame</param>
                return CheckConvertIs(",DiscreteColorKeyFrame,", javascriptObject, false);
    },

    ToDiscreteColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DiscreteColorKeyFrame</param>
                /// <returns type="DiscreteColorKeyFrame" />
                if (!Convert.IsDiscreteColorKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DiscreteColorKeyFrame(javascriptObject.element)
                    else
                        return new DiscreteColorKeyFrame(javascriptObject);
                }
    },


    IsLinearColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is LinearColorKeyFrame</param>
                return CheckConvertIs(",LinearColorKeyFrame,", javascriptObject, false);
    },

    ToLinearColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to LinearColorKeyFrame</param>
                /// <returns type="LinearColorKeyFrame" />
                if (!Convert.IsLinearColorKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new LinearColorKeyFrame(javascriptObject.element)
                    else
                        return new LinearColorKeyFrame(javascriptObject);
                }
    },


    IsSplineColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is SplineColorKeyFrame</param>
                return CheckConvertIs(",SplineColorKeyFrame,", javascriptObject, false);
    },

    ToSplineColorKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to SplineColorKeyFrame</param>
                /// <returns type="SplineColorKeyFrame" />
                if (!Convert.IsSplineColorKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new SplineColorKeyFrame(javascriptObject.element)
                    else
                        return new SplineColorKeyFrame(javascriptObject);
                }
    },


    IsPointAnimationUsingKeyFrames : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PointAnimationUsingKeyFrames</param>
                return CheckConvertIs(",PointAnimationUsingKeyFrames,", javascriptObject, false);
    },

    ToPointAnimationUsingKeyFrames : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PointAnimationUsingKeyFrames</param>
                /// <returns type="PointAnimationUsingKeyFrames" />
                if (!Convert.IsPointAnimationUsingKeyFrames(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PointAnimationUsingKeyFrames(javascriptObject.element)
                    else
                        return new PointAnimationUsingKeyFrames(javascriptObject);
                }
    },


    IsPointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is PointKeyFrame</param>
                return CheckConvertIs(",PointKeyFrame,DiscretePointKeyFrame,LinearPointKeyFrame,SplinePointKeyFrame,", javascriptObject, false);
    },

    ToPointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to PointKeyFrame</param>
                /// <returns type="PointKeyFrame" />
                if (!Convert.IsPointKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new PointKeyFrame(javascriptObject.element)
                    else
                        return new PointKeyFrame(javascriptObject);
                }
    },


    IsDiscretePointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DiscretePointKeyFrame</param>
                return CheckConvertIs(",DiscretePointKeyFrame,", javascriptObject, false);
    },

    ToDiscretePointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DiscretePointKeyFrame</param>
                /// <returns type="DiscretePointKeyFrame" />
                if (!Convert.IsDiscretePointKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DiscretePointKeyFrame(javascriptObject.element)
                    else
                        return new DiscretePointKeyFrame(javascriptObject);
                }
    },


    IsLinearPointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is LinearPointKeyFrame</param>
                return CheckConvertIs(",LinearPointKeyFrame,", javascriptObject, false);
    },

    ToLinearPointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to LinearPointKeyFrame</param>
                /// <returns type="LinearPointKeyFrame" />
                if (!Convert.IsLinearPointKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new LinearPointKeyFrame(javascriptObject.element)
                    else
                        return new LinearPointKeyFrame(javascriptObject);
                }
    },


    IsSplinePointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is SplinePointKeyFrame</param>
                return CheckConvertIs(",SplinePointKeyFrame,", javascriptObject, false);
    },

    ToSplinePointKeyFrame : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to SplinePointKeyFrame</param>
                /// <returns type="SplinePointKeyFrame" />
                if (!Convert.IsSplinePointKeyFrame(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new SplinePointKeyFrame(javascriptObject.element)
                    else
                        return new SplinePointKeyFrame(javascriptObject);
                }
    },


    IsTimelineMarker : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TimelineMarker</param>
                return CheckConvertIs(",TimelineMarker,", javascriptObject, false);
    },

    ToTimelineMarker : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TimelineMarker</param>
                /// <returns type="TimelineMarker" />
                if (!Convert.IsTimelineMarker(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TimelineMarker(javascriptObject.element)
                    else
                        return new TimelineMarker(javascriptObject);
                }
    },


    IsTimelineMarkerCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TimelineMarkerCollection</param>
                return CheckConvertIs(",TimelineMarkerCollection,", javascriptObject, false);
    },

    ToTimelineMarkerCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TimelineMarkerCollection</param>
                /// <returns type="TimelineMarkerCollection" />
                if (!Convert.IsTimelineMarkerCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TimelineMarkerCollection(javascriptObject.element)
                    else
                        return new TimelineMarkerCollection(javascriptObject);
                }
    },


    IsMouseEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is MouseEventHandler</param>
                return CheckConvertIs(",MouseEventHandler,", javascriptObject, true);
    },

    ToMouseEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to MouseEventHandler</param>
                /// <returns type="MouseEventHandler" />
                if (!Convert.IsMouseEventHandler(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new MouseEventHandler(javascriptObject.element)
                    else
                        return new MouseEventHandler(javascriptObject);
                }
    },


    IsKeyboardEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is KeyboardEventHandler</param>
                return CheckConvertIs(",KeyboardEventHandler,", javascriptObject, true);
    },

    ToKeyboardEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to KeyboardEventHandler</param>
                /// <returns type="KeyboardEventHandler" />
                if (!Convert.IsKeyboardEventHandler(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new KeyboardEventHandler(javascriptObject.element)
                    else
                        return new KeyboardEventHandler(javascriptObject);
                }
    },


    IsTimelineMarkerEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TimelineMarkerEventHandler</param>
                return CheckConvertIs(",TimelineMarkerEventHandler,", javascriptObject, true);
    },

    ToTimelineMarkerEventHandler : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TimelineMarkerEventHandler</param>
                /// <returns type="TimelineMarkerEventHandler" />
                if (!Convert.IsTimelineMarkerEventHandler(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TimelineMarkerEventHandler(javascriptObject.element)
                    else
                        return new TimelineMarkerEventHandler(javascriptObject);
                }
    },


    IsCursors : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Cursors</param>
                return CheckConvertIs(",Cursors,", javascriptObject, true);
    },

    ToCursors : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Cursors</param>
                /// <returns type="Cursors" />
                if (!Convert.IsCursors(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Cursors(javascriptObject.element)
                    else
                        return new Cursors(javascriptObject);
                }
    },


    IsTabletDeviceType : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TabletDeviceType</param>
                return CheckConvertIs(",TabletDeviceType,", javascriptObject, true);
    },

    ToTabletDeviceType : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TabletDeviceType</param>
                /// <returns type="TabletDeviceType" />
                if (!Convert.IsTabletDeviceType(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TabletDeviceType(javascriptObject.element)
                    else
                        return new TabletDeviceType(javascriptObject);
                }
    },


    IsStylusPoint : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is StylusPoint</param>
                return CheckConvertIs(",StylusPoint,", javascriptObject, false);
    },

    ToStylusPoint : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to StylusPoint</param>
                /// <returns type="StylusPoint" />
                if (!Convert.IsStylusPoint(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new StylusPoint(javascriptObject.element)
                    else
                        return new StylusPoint(javascriptObject);
                }
    },


    IsStylusPointCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is StylusPointCollection</param>
                return CheckConvertIs(",StylusPointCollection,", javascriptObject, false);
    },

    ToStylusPointCollection : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to StylusPointCollection</param>
                /// <returns type="StylusPointCollection" />
                if (!Convert.IsStylusPointCollection(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new StylusPointCollection(javascriptObject.element)
                    else
                        return new StylusPointCollection(javascriptObject);
                }
    },


    IsMouseEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is MouseEventArgs</param>
                return CheckConvertIs(",MouseEventArgs,", javascriptObject, true);
    },

    ToMouseEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to MouseEventArgs</param>
                /// <returns type="MouseEventArgs" />
                if (!Convert.IsMouseEventArgs(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new MouseEventArgs(javascriptObject.element)
                    else
                        return new MouseEventArgs(javascriptObject);
                }
    },


    IsKeyboardEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is KeyboardEventArgs</param>
                return CheckConvertIs(",KeyboardEventArgs,", javascriptObject, true);
    },

    ToKeyboardEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to KeyboardEventArgs</param>
                /// <returns type="KeyboardEventArgs" />
                if (!Convert.IsKeyboardEventArgs(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new KeyboardEventArgs(javascriptObject.element)
                    else
                        return new KeyboardEventArgs(javascriptObject);
                }
    },


    IsTimelineMarkerEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TimelineMarkerEventArgs</param>
                return CheckConvertIs(",TimelineMarkerEventArgs,", javascriptObject, true);
    },

    ToTimelineMarkerEventArgs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TimelineMarkerEventArgs</param>
                /// <returns type="TimelineMarkerEventArgs" />
                if (!Convert.IsTimelineMarkerEventArgs(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TimelineMarkerEventArgs(javascriptObject.element)
                    else
                        return new TimelineMarkerEventArgs(javascriptObject);
                }
    },


    IsStylusInfo : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is StylusInfo</param>
                return CheckConvertIs(",StylusInfo,", javascriptObject, false);
    },

    ToStylusInfo : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to StylusInfo</param>
                /// <returns type="StylusInfo" />
                if (!Convert.IsStylusInfo(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new StylusInfo(javascriptObject.element)
                    else
                        return new StylusInfo(javascriptObject);
                }
    },


    IsShape : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Shape</param>
                return CheckConvertIs(",Shape,Path,Ellipse,Line,Polygon,Polyline,Rectangle,", javascriptObject, false);
    },

    ToShape : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Shape</param>
                /// <returns type="Shape" />
                if (!Convert.IsShape(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Shape(javascriptObject.element)
                    else
                        return new Shape(javascriptObject);
                }
    },


    IsPath : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Path</param>
                return CheckConvertIs(",Path,", javascriptObject, false);
    },

    ToPath : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Path</param>
                /// <returns type="Path" />
                if (!Convert.IsPath(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Path(javascriptObject.element)
                    else
                        return new Path(javascriptObject);
                }
    },


    IsEllipse : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Ellipse</param>
                return CheckConvertIs(",Ellipse,", javascriptObject, false);
    },

    ToEllipse : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Ellipse</param>
                /// <returns type="Ellipse" />
                if (!Convert.IsEllipse(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Ellipse(javascriptObject.element)
                    else
                        return new Ellipse(javascriptObject);
                }
    },


    IsLine : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Line</param>
                return CheckConvertIs(",Line,", javascriptObject, false);
    },

    ToLine : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Line</param>
                /// <returns type="Line" />
                if (!Convert.IsLine(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Line(javascriptObject.element)
                    else
                        return new Line(javascriptObject);
                }
    },


    IsPolygon : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Polygon</param>
                return CheckConvertIs(",Polygon,", javascriptObject, false);
    },

    ToPolygon : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Polygon</param>
                /// <returns type="Polygon" />
                if (!Convert.IsPolygon(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Polygon(javascriptObject.element)
                    else
                        return new Polygon(javascriptObject);
                }
    },


    IsPolyline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Polyline</param>
                return CheckConvertIs(",Polyline,", javascriptObject, false);
    },

    ToPolyline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Polyline</param>
                /// <returns type="Polyline" />
                if (!Convert.IsPolyline(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Polyline(javascriptObject.element)
                    else
                        return new Polyline(javascriptObject);
                }
    },


    IsRectangle : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Rectangle</param>
                return CheckConvertIs(",Rectangle,", javascriptObject, false);
    },

    ToRectangle : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Rectangle</param>
                /// <returns type="Rectangle" />
                if (!Convert.IsRectangle(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Rectangle(javascriptObject.element)
                    else
                        return new Rectangle(javascriptObject);
                }
    },


    IsInline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Inline</param>
                return CheckConvertIs(",Inline,Run,LineBreak,", javascriptObject, false);
    },

    ToInline : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Inline</param>
                /// <returns type="Inline" />
                if (!Convert.IsInline(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Inline(javascriptObject.element)
                    else
                        return new Inline(javascriptObject);
                }
    },


    IsGlyphs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Glyphs</param>
                return CheckConvertIs(",Glyphs,", javascriptObject, false);
    },

    ToGlyphs : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Glyphs</param>
                /// <returns type="Glyphs" />
                if (!Convert.IsGlyphs(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Glyphs(javascriptObject.element)
                    else
                        return new Glyphs(javascriptObject);
                }
    },


    IsRun : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Run</param>
                return CheckConvertIs(",Run,", javascriptObject, false);
    },

    ToRun : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Run</param>
                /// <returns type="Run" />
                if (!Convert.IsRun(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Run(javascriptObject.element)
                    else
                        return new Run(javascriptObject);
                }
    },


    IsLineBreak : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is LineBreak</param>
                return CheckConvertIs(",LineBreak,", javascriptObject, false);
    },

    ToLineBreak : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to LineBreak</param>
                /// <returns type="LineBreak" />
                if (!Convert.IsLineBreak(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new LineBreak(javascriptObject.element)
                    else
                        return new LineBreak(javascriptObject);
                }
    },


    IsPanel : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Panel</param>
                return CheckConvertIs(",Panel,Canvas,InkPresenter,", javascriptObject, false);
    },

    ToPanel : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Panel</param>
                /// <returns type="Panel" />
                if (!Convert.IsPanel(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Panel(javascriptObject.element)
                    else
                        return new Panel(javascriptObject);
                }
    },


    IsMediaBase : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is MediaBase</param>
                return CheckConvertIs(",MediaBase,ImageSL,MediaElement,", javascriptObject, false);
    },

    ToMediaBase : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to MediaBase</param>
                /// <returns type="MediaBase" />
                if (!Convert.IsMediaBase(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new MediaBase(javascriptObject.element)
                    else
                        return new MediaBase(javascriptObject);
                }
    },


    IsImageSL : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is ImageSL</param>
                return CheckConvertIs(",ImageSL,", javascriptObject, false);
    },

    ToImageSL : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to ImageSL</param>
                /// <returns type="ImageSL" />
                if (!Convert.IsImageSL(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new ImageSL(javascriptObject.element)
                    else
                        return new ImageSL(javascriptObject);
                }
    },


    IsCanvas : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Canvas</param>
                return CheckConvertIs(",Canvas,InkPresenter,", javascriptObject, false);
    },

    ToCanvas : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Canvas</param>
                /// <returns type="Canvas" />
                if (!Convert.IsCanvas(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Canvas(javascriptObject.element)
                    else
                        return new Canvas(javascriptObject);
                }
    },


    IsTextBlock : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is TextBlock</param>
                return CheckConvertIs(",TextBlock,", javascriptObject, false);
    },

    ToTextBlock : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to TextBlock</param>
                /// <returns type="TextBlock" />
                if (!Convert.IsTextBlock(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new TextBlock(javascriptObject.element)
                    else
                        return new TextBlock(javascriptObject);
                }
    },


    IsMediaElement : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is MediaElement</param>
                return CheckConvertIs(",MediaElement,", javascriptObject, false);
    },

    ToMediaElement : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to MediaElement</param>
                /// <returns type="MediaElement" />
                if (!Convert.IsMediaElement(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new MediaElement(javascriptObject.element)
                    else
                        return new MediaElement(javascriptObject);
                }
    },


    IsInkPresenter : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is InkPresenter</param>
                return CheckConvertIs(",InkPresenter,", javascriptObject, false);
    },

    ToInkPresenter : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to InkPresenter</param>
                /// <returns type="InkPresenter" />
                if (!Convert.IsInkPresenter(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new InkPresenter(javascriptObject.element)
                    else
                        return new InkPresenter(javascriptObject);
                }
    },


    IsControl : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Control</param>
                return CheckConvertIs(",Control,", javascriptObject, false);
    },

    ToControl : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Control</param>
                /// <returns type="Control" />
                if (!Convert.IsControl(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Control(javascriptObject.element)
                    else
                        return new Control(javascriptObject);
                }
    },


    IsDuration : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Duration</param>
                return CheckConvertIs(",Duration,", javascriptObject, true);
    },

    ToDuration : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Duration</param>
                /// <returns type="Duration" />
                if (!Convert.IsDuration(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Duration(javascriptObject.element)
                    else
                        return new Duration(javascriptObject);
                }
    },


    IsXamlParseException : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is XamlParseException</param>
                return CheckConvertIs(",XamlParseException,", javascriptObject, true);
    },

    ToXamlParseException : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to XamlParseException</param>
                /// <returns type="XamlParseException" />
                if (!Convert.IsXamlParseException(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new XamlParseException(javascriptObject.element)
                    else
                        return new XamlParseException(javascriptObject);
                }
    },


    IsBrowserHost : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is BrowserHost</param>
                return CheckConvertIs(",BrowserHost,", javascriptObject, true);
    },

    ToBrowserHost : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to BrowserHost</param>
                /// <returns type="BrowserHost" />
                if (!Convert.IsBrowserHost(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new BrowserHost(javascriptObject.element)
                    else
                        return new BrowserHost(javascriptObject);
                }
    },


    IsRepeatBehavior : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is RepeatBehavior</param>
                return CheckConvertIs(",RepeatBehavior,", javascriptObject, true);
    },

    ToRepeatBehavior : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to RepeatBehavior</param>
                /// <returns type="RepeatBehavior" />
                if (!Convert.IsRepeatBehavior(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new RepeatBehavior(javascriptObject.element)
                    else
                        return new RepeatBehavior(javascriptObject);
                }
    },


    IsKeyTime : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is KeyTime</param>
                return CheckConvertIs(",KeyTime,", javascriptObject, true);
    },

    ToKeyTime : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to KeyTime</param>
                /// <returns type="KeyTime" />
                if (!Convert.IsKeyTime(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new KeyTime(javascriptObject.element)
                    else
                        return new KeyTime(javascriptObject);
                }
    },


    IsKeyTimeType : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is KeyTimeType</param>
                return CheckConvertIs(",KeyTimeType,", javascriptObject, true);
    },

    ToKeyTimeType : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to KeyTimeType</param>
                /// <returns type="KeyTimeType" />
                if (!Convert.IsKeyTimeType(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new KeyTimeType(javascriptObject.element)
                    else
                        return new KeyTimeType(javascriptObject);
                }
    },


    IsMatrix : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Matrix</param>
                return CheckConvertIs(",Matrix,", javascriptObject, true);
    },

    ToMatrix : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Matrix</param>
                /// <returns type="Matrix" />
                if (!Convert.IsMatrix(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Matrix(javascriptObject.element)
                    else
                        return new Matrix(javascriptObject);
                }
    },


    IsRect : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Rect</param>
                return CheckConvertIs(",Rect,", javascriptObject, true);
    },

    ToRect : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Rect</param>
                /// <returns type="Rect" />
                if (!Convert.IsRect(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Rect(javascriptObject.element)
                    else
                        return new Rect(javascriptObject);
                }
    },


    IsPoint : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Point</param>
                return CheckConvertIs(",Point,", javascriptObject, true);
    },

    ToPoint : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Point</param>
                /// <returns type="Point" />
                if (!Convert.IsPoint(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Point(javascriptObject.element)
                    else
                        return new Point(javascriptObject);
                }
    },


    IsSize : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Size</param>
                return CheckConvertIs(",Size,", javascriptObject, true);
    },

    ToSize : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Size</param>
                /// <returns type="Size" />
                if (!Convert.IsSize(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Size(javascriptObject.element)
                    else
                        return new Size(javascriptObject);
                }
    },


    IsColor : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Color</param>
                return CheckConvertIs(",Color,", javascriptObject, true);
    },

    ToColor : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Color</param>
                /// <returns type="Color" />
                if (!Convert.IsColor(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Color(javascriptObject.element)
                    else
                        return new Color(javascriptObject);
                }
    },


    IsColors : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is Colors</param>
                return CheckConvertIs(",Colors,", javascriptObject, true);
    },

    ToColors : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to Colors</param>
                /// <returns type="Colors" />
                if (!Convert.IsColors(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new Colors(javascriptObject.element)
                    else
                        return new Colors(javascriptObject);
                }
    },


    IsXamlReader : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is XamlReader</param>
                return CheckConvertIs(",XamlReader,", javascriptObject, true);
    },

    ToXamlReader : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to XamlReader</param>
                /// <returns type="XamlReader" />
                if (!Convert.IsXamlReader(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new XamlReader(javascriptObject.element)
                    else
                        return new XamlReader(javascriptObject);
                }
    },


    IsDependencyProperty : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to check if is DependencyProperty</param>
                return CheckConvertIs(",DependencyProperty,", javascriptObject, true);
    },

    ToDependencyProperty : function(javascriptObject)
    {
                /// <param name="javascriptObject">object to convert to DependencyProperty</param>
                /// <returns type="DependencyProperty" />
                if (!Convert.IsDependencyProperty(javascriptObject))
                    return;
                else
                {
                    if (HasElementProperty(javascriptObject))
                        return new DependencyProperty(javascriptObject.element)
                    else
                        return new DependencyProperty(javascriptObject);
                }
    }
}

function TypeSafety(paramsToValidate)
{
    var isValid = true;
    for(var paramType  in paramsToValidate)
    {
        var paramValue = paramsToValidate[paramType];
        var ConvertIs = eval("Convert.Is" + paramType);
        if (ConvertIs)
        {
           if (!ConvertIs(paramValue))
           {
                isValid = false;
           }
        }
        
        if ((paramType == "String") && !IsString(paramValue))
            isValid = false;
       
        if (((paramType == "Number") || (paramType == "Double")) && !IsNumber(paramValue))
            isValid = false;
            
        if ((paramType == "Function") && !IsFunction(paramValue))
            isValid = false;
              
        if ((paramType == "Boolean") && !IsBoolean(paramValue))
            isValid = false;
                  
        if (!isValid)
            throw new Error(paramValue + " is not of type " + paramType);
    }
}

function IsPrimitive(value) 
{ 
    return IsString(value) || IsNumber(value) || IsFunction(value) || IsBoolean(value); 
}

function IsString(value) 
{ 
    return (value  != null) && (value.toLowerCase != null); 
}

function IsNumber(value) 
{
    return (value != null) && (value.toPrecision != null);
}

function IsFunction(value) 
{
    return  (value != null) && (value.apply != null); 
}

function IsBoolean(value) 
{ 
    return (value != null) && ((value == true) || (value == false)); 
}

function HasElementProperty(value)
{
    try {  return (value != null) && (value.element != null); }
    catch(ex) { return false;  }
}

function CheckConvertIs(typeHierchy, javascriptObject, canBePrimitive)
{
        if (!javascriptObject)
            return false;
        if (!javascriptObject.toString())
            return false;
        var IsInTypeHierchy = typeHierchy.indexOf(',' + javascriptObject.toString() + ',') != -1;
        if (IsInTypeHierchy)
            return true;
        if (canBePrimitive)
        {
            if (HasElementProperty(javascriptObject))
                return IsPrimitive(javascriptObject.element);
            else
                return IsPrimitive(javascriptObject);
        }
                
}


ErrorEventHandler = function(ErrorEventHandlerXamlElement) 
{
        /// <summary></summary>
        /// <param name="ErrorEventHandlerXamlElement">Non strongly typed Xaml Element</param>
        this.element = ErrorEventHandlerXamlElement;
}
ErrorEventHandler.createFromXaml = function(Host)
{
    /// <returns type="ErrorEventHandler" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ErrorEventHandler(Host.content.createFromXaml("<ErrorEventHandler />"));
    } catch (ex) {}
    if (Host.getHost)
        return ErrorEventHandler.CreateNew(Host.getHost());
    return;
}

ErrorEventHandler.prototype =
{    get_method: function()
    {
        /// <summary>Gets or sets the type of spread method that specifies how to draw a gradient that starts or ends inside the bounds of the object to be painted.</summary>
        /// <returns type="MethodInfo" integer="False" />   
        return (this.element.method);
    },

    get_target: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.target);
    },

    invoke: function(sender, e)
    {
         /// <summary></summary>
        /// <param name="sender" type="Object" integer="False" ></param>   
        /// <param name="e" type="ErrorEventArgs" integer="False" ></param>   
        TypeSafety({"Object":sender, "ErrorEventArgs":e});
        return (this.element.invoke(sender, e.element));
    },

    beginInvoke: function(sender, e, callback, object)
    {
         /// <summary></summary>
        /// <param name="sender" type="Object" integer="False" ></param>   
        /// <param name="e" type="ErrorEventArgs" integer="False" ></param>   
        /// <param name="callback" type="AsyncCallback" integer="False" ></param>   
        /// <param name="object" type="Object" integer="False" ></param>   
        /// <returns type="IAsyncResult" integer="False" />   
        TypeSafety({"Object":sender, "ErrorEventArgs":e, "AsyncCallback":callback, "Object":object});
        return (this.element.beginInvoke(sender, e.element, callback, object));
    },

    endInvoke: function(result)
    {
         /// <summary></summary>
        /// <param name="result" type="IAsyncResult" integer="False" ></param>   
        TypeSafety({"IAsyncResult":result});
        return (this.element.endInvoke(result));
    },

    getObjectData: function(info, context)
    {
         /// <summary></summary>
        /// <param name="info" type="SerializationInfo" integer="False" ></param>   
        /// <param name="context" type="StreamingContext" integer="False" ></param>   
        TypeSafety({"SerializationInfo":info, "StreamingContext":context});
        return (this.element.getObjectData(info, context));
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getInvocationList: function()
    {
         /// <summary></summary>
        /// <returns type="Delegate[]" integer="False" />   
        TypeSafety({});
        return (this.element.getInvocationList());
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    dynamicInvoke: function(args)
    {
         /// <summary></summary>
        /// <param name="args" type="Object[]" integer="False" ></param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"Object[]":args});
        return (this.element.dynamicInvoke(args));
    },

    clone: function()
    {
         /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        TypeSafety({});
        return (this.element.clone());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    }
}

ParserErrorEventHandler = function(ParserErrorEventHandlerXamlElement) 
{
        /// <summary></summary>
        /// <param name="ParserErrorEventHandlerXamlElement">Non strongly typed Xaml Element</param>
        this.element = ParserErrorEventHandlerXamlElement;
}
ParserErrorEventHandler.createFromXaml = function(Host)
{
    /// <returns type="ParserErrorEventHandler" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ParserErrorEventHandler(Host.content.createFromXaml("<ParserErrorEventHandler />"));
    } catch (ex) {}
    if (Host.getHost)
        return ParserErrorEventHandler.CreateNew(Host.getHost());
    return;
}

ParserErrorEventHandler.prototype =
{    get_method: function()
    {
        /// <summary>Gets or sets the type of spread method that specifies how to draw a gradient that starts or ends inside the bounds of the object to be painted.</summary>
        /// <returns type="MethodInfo" integer="False" />   
        return (this.element.method);
    },

    get_target: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.target);
    },

    invoke: function(sender, e)
    {
         /// <summary></summary>
        /// <param name="sender" type="Object" integer="False" ></param>   
        /// <param name="e" type="ParserErrorEventArgs" integer="False" ></param>   
        TypeSafety({"Object":sender, "ParserErrorEventArgs":e});
        return (this.element.invoke(sender, e.element));
    },

    beginInvoke: function(sender, e, callback, object)
    {
         /// <summary></summary>
        /// <param name="sender" type="Object" integer="False" ></param>   
        /// <param name="e" type="ParserErrorEventArgs" integer="False" ></param>   
        /// <param name="callback" type="AsyncCallback" integer="False" ></param>   
        /// <param name="object" type="Object" integer="False" ></param>   
        /// <returns type="IAsyncResult" integer="False" />   
        TypeSafety({"Object":sender, "ParserErrorEventArgs":e, "AsyncCallback":callback, "Object":object});
        return (this.element.beginInvoke(sender, e.element, callback, object));
    },

    endInvoke: function(result)
    {
         /// <summary></summary>
        /// <param name="result" type="IAsyncResult" integer="False" ></param>   
        TypeSafety({"IAsyncResult":result});
        return (this.element.endInvoke(result));
    },

    getObjectData: function(info, context)
    {
         /// <summary></summary>
        /// <param name="info" type="SerializationInfo" integer="False" ></param>   
        /// <param name="context" type="StreamingContext" integer="False" ></param>   
        TypeSafety({"SerializationInfo":info, "StreamingContext":context});
        return (this.element.getObjectData(info, context));
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getInvocationList: function()
    {
         /// <summary></summary>
        /// <returns type="Delegate[]" integer="False" />   
        TypeSafety({});
        return (this.element.getInvocationList());
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    dynamicInvoke: function(args)
    {
         /// <summary></summary>
        /// <param name="args" type="Object[]" integer="False" ></param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"Object[]":args});
        return (this.element.dynamicInvoke(args));
    },

    clone: function()
    {
         /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        TypeSafety({});
        return (this.element.clone());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    }
}

RuntimeErrorEventHandler = function(RuntimeErrorEventHandlerXamlElement) 
{
        /// <summary></summary>
        /// <param name="RuntimeErrorEventHandlerXamlElement">Non strongly typed Xaml Element</param>
        this.element = RuntimeErrorEventHandlerXamlElement;
}
RuntimeErrorEventHandler.createFromXaml = function(Host)
{
    /// <returns type="RuntimeErrorEventHandler" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new RuntimeErrorEventHandler(Host.content.createFromXaml("<RuntimeErrorEventHandler />"));
    } catch (ex) {}
    if (Host.getHost)
        return RuntimeErrorEventHandler.CreateNew(Host.getHost());
    return;
}

RuntimeErrorEventHandler.prototype =
{    get_method: function()
    {
        /// <summary>Gets or sets the type of spread method that specifies how to draw a gradient that starts or ends inside the bounds of the object to be painted.</summary>
        /// <returns type="MethodInfo" integer="False" />   
        return (this.element.method);
    },

    get_target: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.target);
    },

    invoke: function(sender, e)
    {
         /// <summary></summary>
        /// <param name="sender" type="Object" integer="False" ></param>   
        /// <param name="e" type="RuntimeErrorEventArgs" integer="False" ></param>   
        TypeSafety({"Object":sender, "RuntimeErrorEventArgs":e});
        return (this.element.invoke(sender, e.element));
    },

    beginInvoke: function(sender, e, callback, object)
    {
         /// <summary></summary>
        /// <param name="sender" type="Object" integer="False" ></param>   
        /// <param name="e" type="RuntimeErrorEventArgs" integer="False" ></param>   
        /// <param name="callback" type="AsyncCallback" integer="False" ></param>   
        /// <param name="object" type="Object" integer="False" ></param>   
        /// <returns type="IAsyncResult" integer="False" />   
        TypeSafety({"Object":sender, "RuntimeErrorEventArgs":e, "AsyncCallback":callback, "Object":object});
        return (this.element.beginInvoke(sender, e.element, callback, object));
    },

    endInvoke: function(result)
    {
         /// <summary></summary>
        /// <param name="result" type="IAsyncResult" integer="False" ></param>   
        TypeSafety({"IAsyncResult":result});
        return (this.element.endInvoke(result));
    },

    getObjectData: function(info, context)
    {
         /// <summary></summary>
        /// <param name="info" type="SerializationInfo" integer="False" ></param>   
        /// <param name="context" type="StreamingContext" integer="False" ></param>   
        TypeSafety({"SerializationInfo":info, "StreamingContext":context});
        return (this.element.getObjectData(info, context));
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getInvocationList: function()
    {
         /// <summary></summary>
        /// <returns type="Delegate[]" integer="False" />   
        TypeSafety({});
        return (this.element.getInvocationList());
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    dynamicInvoke: function(args)
    {
         /// <summary></summary>
        /// <param name="args" type="Object[]" integer="False" ></param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"Object[]":args});
        return (this.element.dynamicInvoke(args));
    },

    clone: function()
    {
         /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        TypeSafety({});
        return (this.element.clone());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    }
}

TextWrapping = function(TextWrappingXamlElement) 
{
        /// <summary>Specifies whether text wraps when it reaches the edge of the containing box.</summary>
        /// <param name="TextWrappingXamlElement">Non strongly typed Xaml Element</param>
        this.element = TextWrappingXamlElement;
}
TextWrapping.createFromXaml = function(Host)
{
    /// <returns type="TextWrapping" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TextWrapping(Host.content.createFromXaml("<TextWrapping />"));
    } catch (ex) {}
    if (Host.getHost)
        return TextWrapping.CreateNew(Host.getHost());
    return;
}

TextWrapping.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

FontWeights = function(FontWeightsXamlElement) 
{
        /// <summary></summary>
        /// <param name="FontWeightsXamlElement">Non strongly typed Xaml Element</param>
        this.element = FontWeightsXamlElement;
}
FontWeights.createFromXaml = function(Host)
{
    /// <returns type="FontWeights" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new FontWeights(Host.content.createFromXaml("<FontWeights />"));
    } catch (ex) {}
    if (Host.getHost)
        return FontWeights.CreateNew(Host.getHost());
    return;
}

FontWeights.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

FontStyles = function(FontStylesXamlElement) 
{
        /// <summary></summary>
        /// <param name="FontStylesXamlElement">Non strongly typed Xaml Element</param>
        this.element = FontStylesXamlElement;
}
FontStyles.createFromXaml = function(Host)
{
    /// <returns type="FontStyles" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new FontStyles(Host.content.createFromXaml("<FontStyles />"));
    } catch (ex) {}
    if (Host.getHost)
        return FontStyles.CreateNew(Host.getHost());
    return;
}

FontStyles.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

StyleSimulations = function(StyleSimulationsXamlElement) 
{
        /// <summary>Describes the simulation style of a font.</summary>
        /// <param name="StyleSimulationsXamlElement">Non strongly typed Xaml Element</param>
        this.element = StyleSimulationsXamlElement;
}
StyleSimulations.createFromXaml = function(Host)
{
    /// <returns type="StyleSimulations" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new StyleSimulations(Host.content.createFromXaml("<StyleSimulations />"));
    } catch (ex) {}
    if (Host.getHost)
        return StyleSimulations.CreateNew(Host.getHost());
    return;
}

StyleSimulations.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

TextDecorations = function(TextDecorationsXamlElement) 
{
        /// <summary>Describes the possible text decorations.</summary>
        /// <param name="TextDecorationsXamlElement">Non strongly typed Xaml Element</param>
        this.element = TextDecorationsXamlElement;
}
TextDecorations.createFromXaml = function(Host)
{
    /// <returns type="TextDecorations" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TextDecorations(Host.content.createFromXaml("<TextDecorations />"));
    } catch (ex) {}
    if (Host.getHost)
        return TextDecorations.CreateNew(Host.getHost());
    return;
}

TextDecorations.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

FontStretches = function(FontStretchesXamlElement) 
{
        /// <summary></summary>
        /// <param name="FontStretchesXamlElement">Non strongly typed Xaml Element</param>
        this.element = FontStretchesXamlElement;
}
FontStretches.createFromXaml = function(Host)
{
    /// <returns type="FontStretches" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new FontStretches(Host.content.createFromXaml("<FontStretches />"));
    } catch (ex) {}
    if (Host.getHost)
        return FontStretches.CreateNew(Host.getHost());
    return;
}

FontStretches.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

Visibility = function(VisibilityXamlElement) 
{
        /// <summary>Specifies the display state of an element.</summary>
        /// <param name="VisibilityXamlElement">Non strongly typed Xaml Element</param>
        this.element = VisibilityXamlElement;
}
Visibility.createFromXaml = function(Host)
{
    /// <returns type="Visibility" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Visibility(Host.content.createFromXaml("<Visibility />"));
    } catch (ex) {}
    if (Host.getHost)
        return Visibility.CreateNew(Host.getHost());
    return;
}

Visibility.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

ErrorType = function(ErrorTypeXamlElement) 
{
        /// <summary>Describes the possible types of errors.</summary>
        /// <param name="ErrorTypeXamlElement">Non strongly typed Xaml Element</param>
        this.element = ErrorTypeXamlElement;
}
ErrorType.createFromXaml = function(Host)
{
    /// <returns type="ErrorType" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ErrorType(Host.content.createFromXaml("<ErrorType />"));
    } catch (ex) {}
    if (Host.getHost)
        return ErrorType.CreateNew(Host.getHost());
    return;
}

ErrorType.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

DependencyObject = function(DependencyObjectXamlElement) 
{
        /// <summary>Provides Silverlight property system services.</summary>
        /// <param name="DependencyObjectXamlElement">Non strongly typed Xaml Element</param>
        this.element = DependencyObjectXamlElement;
}
DependencyObject.createFromXaml = function(Host)
{
    /// <returns type="DependencyObject" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new DependencyObject(Host.content.createFromXaml("<DependencyObject />"));
    } catch (ex) {}
    if (Host.getHost)
        return DependencyObject.CreateNew(Host.getHost());
    return;
}

DependencyObject.prototype =
{    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

Visual = function(VisualXamlElement) 
{
        /// <summary></summary>
        /// <param name="VisualXamlElement">Non strongly typed Xaml Element</param>
        this.element = VisualXamlElement;
}
Visual.createFromXaml = function(Host)
{
    /// <returns type="Visual" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Visual(Host.content.createFromXaml("<Visual />"));
    } catch (ex) {}
    if (Host.getHost)
        return Visual.CreateNew(Host.getHost());
    return;
}

Visual.prototype =
{    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    captureMouse: function()
    {
         /// <summary>Enables mouse capture for the object.</summary>
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({});
        return (this.element.captureMouse());
    },

    releaseMouseCapture: function()
    {
         /// <summary>Disables mouse capture for the object.</summary>
        TypeSafety({});
        return (this.element.releaseMouseCapture());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

UIElement = function(UIElementXamlElement) 
{
        /// <summary>UIElement is the base class for rendered objects. This class is abstract.</summary>
        /// <param name="UIElementXamlElement">Non strongly typed Xaml Element</param>
        this.element = UIElementXamlElement;
}
UIElement.createFromXaml = function(Host)
{
    /// <returns type="UIElement" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new UIElement(Host.content.createFromXaml("<UIElement />"));
    } catch (ex) {}
    if (Host.getHost)
        return UIElement.CreateNew(Host.getHost());
    return;
}

UIElement.prototype =
{    set_opacity: function(value)
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.opacity = value;
    },

    get_opacity: function()
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.opacity);
    },

    set_clip: function(value)
    {
        /// <summary>Gets or sets the Geometry used to define the outline of the contents of an element.</summary>
        /// <param name="value" type="Geometry" integer="False" />
        TypeSafety({"Geometry" : value});   
        this.element.clip = value.element;
    },

    get_clip: function()
    {
        /// <summary>Gets or sets the Geometry used to define the outline of the contents of an element.</summary>
        /// <returns type="Geometry" integer="False" />   
        return Convert.ToGeometry(this.element.clip);
    },

    set_renderTransform: function(value)
    {
        /// <summary>Gets or sets transform information that affects the rendering position of this object.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.renderTransform = value.element;
    },

    get_renderTransform: function()
    {
        /// <summary>Gets or sets transform information that affects the rendering position of this object.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.renderTransform);
    },

    set_triggers: function(value)
    {
        /// <summary>Gets the collection of triggers established directly on this element, or in child elements.</summary>
        /// <param name="value" type="TriggerCollection" integer="False" />
        TypeSafety({"TriggerCollection" : value});   
        this.element.triggers = value.element;
    },

    get_triggers: function()
    {
        /// <summary>Gets the collection of triggers established directly on this element, or in child elements.</summary>
        /// <returns type="TriggerCollection" integer="False" />   
        return Convert.ToTriggerCollection(this.element.triggers);
    },

    set_opacityMask: function(value)
    {
        /// <summary>Gets or sets the brush used to alter the opacity of select regions of this object.</summary>
        /// <param name="value" type="Brush" integer="False" />
        TypeSafety({"Brush" : value});   
        this.element.opacityMask = value.element;
    },

    get_opacityMask: function()
    {
        /// <summary>Gets or sets the brush used to alter the opacity of select regions of this object.</summary>
        /// <returns type="Brush" integer="False" />   
        return Convert.ToBrush(this.element.opacityMask);
    },

    set_renderTransformOrigin: function(value)
    {
        /// <summary>Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.renderTransformOrigin = value.element;
    },

    get_renderTransformOrigin: function()
    {
        /// <summary>Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.renderTransformOrigin);
    },

    set_cursor: function(value)
    {
        /// <summary>Gets or sets the cursor that displays when the mouse pointer is over the element.</summary>
        /// <param name="value" type="Cursors" integer="False" />
        TypeSafety({"Cursors" : value});   
        this.element.cursor = value.element;
    },

    get_cursor: function()
    {
        /// <summary>Gets or sets the cursor that displays when the mouse pointer is over the element.</summary>
        /// <returns type="Cursors" integer="False" />   
        return Convert.ToCursors(this.element.cursor);
    },

    set_isHitTestVisible: function(value)
    {
        /// <summary>Gets or sets whether the contained area of this UIElement can be used for hit-testing.</summary>
        /// <param name="value" type="Boolean" integer="False" />
        TypeSafety({"Boolean" : value});   
        this.element.isHitTestVisible = value;
    },

    get_isHitTestVisible: function()
    {
        /// <summary>Gets or sets whether the contained area of this UIElement can be used for hit-testing.</summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isHitTestVisible);
    },

    set_visibility: function(value)
    {
        /// <summary>Gets or sets the user interface (UI) visibility of this element.</summary>
        /// <param name="value" type="Visibility" integer="False" />
        TypeSafety({"Visibility" : value});   
        this.element.visibility = value.element;
    },

    get_visibility: function()
    {
        /// <summary>Gets or sets the user interface (UI) visibility of this element.</summary>
        /// <returns type="Visibility" integer="False" />   
        return Convert.ToVisibility(this.element.visibility);
    },

    set_resources: function(value)
    {
        /// <summary>Gets or sets a collection of Storyboard objects that you can use to control animations.</summary>
        /// <param name="value" type="ResourceDictionary" integer="False" />
        TypeSafety({"ResourceDictionary" : value});   
        this.element.resources = value.element;
    },

    get_resources: function()
    {
        /// <summary>Gets or sets a collection of Storyboard objects that you can use to control animations.</summary>
        /// <returns type="ResourceDictionary" integer="False" />   
        return Convert.ToResourceDictionary(this.element.resources);
    },

    set_tag: function(value)
    {
        /// <summary>Gets or sets an object that can be used for user storage or information passing.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.tag = value;
    },

    get_tag: function()
    {
        /// <summary>Gets or sets an object that can be used for user storage or information passing.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.tag);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    captureMouse: function()
    {
         /// <summary>Enables mouse capture for the object.</summary>
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({});
        return (this.element.captureMouse());
    },

    releaseMouseCapture: function()
    {
         /// <summary>Disables mouse capture for the object.</summary>
        TypeSafety({});
        return (this.element.releaseMouseCapture());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    add_Loaded : function(handler) {
        /// <summary>Fired when the Silverlight content is loaded into the host Silverlight plugin and parsed, but before the content is rendered.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("Loaded", handler);
    },
    
    remove_Loaded : function(eventId) {
        /// <summary>Fired when the Silverlight content is loaded into the host Silverlight plugin and parsed, but before the content is rendered.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_Loaded</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("Loaded", eventId)
    },

    add_MouseMove : function(handler) {
        /// <summary>Occurs when the coordinate position of the mouse changes.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseMove", handler);
    },
    
    remove_MouseMove : function(eventId) {
        /// <summary>Occurs when the coordinate position of the mouse changes.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseMove</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseMove", eventId)
    },

    add_MouseEnter : function(handler) {
        /// <summary>Occurs when the mouse enters the bounding area of an object.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseEnter", handler);
    },
    
    remove_MouseEnter : function(eventId) {
        /// <summary>Occurs when the mouse enters the bounding area of an object.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseEnter</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseEnter", eventId)
    },

    add_MouseLeave : function(handler) {
        /// <summary>Occurs when the mouse leaves the bounding area of an object.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseLeave", handler);
    },
    
    remove_MouseLeave : function(eventId) {
        /// <summary>Occurs when the mouse leaves the bounding area of an object.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseLeave</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseLeave", eventId)
    },

    add_MouseLeftButtonDown : function(handler) {
        /// <summary>Occurs when the left mouse button is depressed.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseLeftButtonDown", handler);
    },
    
    remove_MouseLeftButtonDown : function(eventId) {
        /// <summary>Occurs when the left mouse button is depressed.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseLeftButtonDown</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseLeftButtonDown", eventId)
    },

    add_MouseLeftButtonUp : function(handler) {
        /// <summary>Occurs when the left mouse button is released.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseLeftButtonUp", handler);
    },
    
    remove_MouseLeftButtonUp : function(eventId) {
        /// <summary>Occurs when the left mouse button is released.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseLeftButtonUp</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseLeftButtonUp", eventId)
    },

    add_KeyUp : function(handler) {
        /// <summary>Occurs when the key is released while the plugin has focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("KeyUp", handler);
    },
    
    remove_KeyUp : function(eventId) {
        /// <summary>Occurs when the key is released while the plugin has focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_KeyUp</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("KeyUp", eventId)
    },

    add_KeyDown : function(handler) {
        /// <summary>Occurs when the key is pressed while the content has focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("KeyDown", handler);
    },
    
    remove_KeyDown : function(eventId) {
        /// <summary>Occurs when the key is pressed while the content has focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_KeyDown</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("KeyDown", eventId)
    },

    add_GotFocus : function(handler) {
        /// <summary>Occurs when an object receives focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("GotFocus", handler);
    },
    
    remove_GotFocus : function(eventId) {
        /// <summary>Occurs when an object receives focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_GotFocus</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("GotFocus", eventId)
    },

    add_LostFocus : function(handler) {
        /// <summary>Occurs when an object loses focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("LostFocus", handler);
    },
    
    remove_LostFocus : function(eventId) {
        /// <summary>Occurs when an object loses focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_LostFocus</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("LostFocus", eventId)
    }
}

FrameworkElement = function(FrameworkElementXamlElement) 
{
        /// <summary></summary>
        /// <param name="FrameworkElementXamlElement">Non strongly typed Xaml Element</param>
        this.element = FrameworkElementXamlElement;
}
FrameworkElement.createFromXaml = function(Host)
{
    /// <returns type="FrameworkElement" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new FrameworkElement(Host.content.createFromXaml("<FrameworkElement />"));
    } catch (ex) {}
    if (Host.getHost)
        return FrameworkElement.CreateNew(Host.getHost());
    return;
}

FrameworkElement.prototype =
{    set_width: function(value)
    {
        /// <summary>The width of the associated stroke.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.width = value;
    },

    get_width: function()
    {
        /// <summary>The width of the associated stroke.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.width);
    },

    set_height: function(value)
    {
        /// <summary>The height of the associated stroke.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.height = value;
    },

    get_height: function()
    {
        /// <summary>The height of the associated stroke.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.height);
    },

    get_parent: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.parent);
    },

    set_opacity: function(value)
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.opacity = value;
    },

    get_opacity: function()
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.opacity);
    },

    set_clip: function(value)
    {
        /// <summary>Gets or sets the Geometry used to define the outline of the contents of an element.</summary>
        /// <param name="value" type="Geometry" integer="False" />
        TypeSafety({"Geometry" : value});   
        this.element.clip = value.element;
    },

    get_clip: function()
    {
        /// <summary>Gets or sets the Geometry used to define the outline of the contents of an element.</summary>
        /// <returns type="Geometry" integer="False" />   
        return Convert.ToGeometry(this.element.clip);
    },

    set_renderTransform: function(value)
    {
        /// <summary>Gets or sets transform information that affects the rendering position of this object.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.renderTransform = value.element;
    },

    get_renderTransform: function()
    {
        /// <summary>Gets or sets transform information that affects the rendering position of this object.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.renderTransform);
    },

    set_triggers: function(value)
    {
        /// <summary>Gets the collection of triggers established directly on this element, or in child elements.</summary>
        /// <param name="value" type="TriggerCollection" integer="False" />
        TypeSafety({"TriggerCollection" : value});   
        this.element.triggers = value.element;
    },

    get_triggers: function()
    {
        /// <summary>Gets the collection of triggers established directly on this element, or in child elements.</summary>
        /// <returns type="TriggerCollection" integer="False" />   
        return Convert.ToTriggerCollection(this.element.triggers);
    },

    set_opacityMask: function(value)
    {
        /// <summary>Gets or sets the brush used to alter the opacity of select regions of this object.</summary>
        /// <param name="value" type="Brush" integer="False" />
        TypeSafety({"Brush" : value});   
        this.element.opacityMask = value.element;
    },

    get_opacityMask: function()
    {
        /// <summary>Gets or sets the brush used to alter the opacity of select regions of this object.</summary>
        /// <returns type="Brush" integer="False" />   
        return Convert.ToBrush(this.element.opacityMask);
    },

    set_renderTransformOrigin: function(value)
    {
        /// <summary>Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.renderTransformOrigin = value.element;
    },

    get_renderTransformOrigin: function()
    {
        /// <summary>Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.renderTransformOrigin);
    },

    set_cursor: function(value)
    {
        /// <summary>Gets or sets the cursor that displays when the mouse pointer is over the element.</summary>
        /// <param name="value" type="Cursors" integer="False" />
        TypeSafety({"Cursors" : value});   
        this.element.cursor = value.element;
    },

    get_cursor: function()
    {
        /// <summary>Gets or sets the cursor that displays when the mouse pointer is over the element.</summary>
        /// <returns type="Cursors" integer="False" />   
        return Convert.ToCursors(this.element.cursor);
    },

    set_isHitTestVisible: function(value)
    {
        /// <summary>Gets or sets whether the contained area of this UIElement can be used for hit-testing.</summary>
        /// <param name="value" type="Boolean" integer="False" />
        TypeSafety({"Boolean" : value});   
        this.element.isHitTestVisible = value;
    },

    get_isHitTestVisible: function()
    {
        /// <summary>Gets or sets whether the contained area of this UIElement can be used for hit-testing.</summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isHitTestVisible);
    },

    set_visibility: function(value)
    {
        /// <summary>Gets or sets the user interface (UI) visibility of this element.</summary>
        /// <param name="value" type="Visibility" integer="False" />
        TypeSafety({"Visibility" : value});   
        this.element.visibility = value.element;
    },

    get_visibility: function()
    {
        /// <summary>Gets or sets the user interface (UI) visibility of this element.</summary>
        /// <returns type="Visibility" integer="False" />   
        return Convert.ToVisibility(this.element.visibility);
    },

    set_resources: function(value)
    {
        /// <summary>Gets or sets a collection of Storyboard objects that you can use to control animations.</summary>
        /// <param name="value" type="ResourceDictionary" integer="False" />
        TypeSafety({"ResourceDictionary" : value});   
        this.element.resources = value.element;
    },

    get_resources: function()
    {
        /// <summary>Gets or sets a collection of Storyboard objects that you can use to control animations.</summary>
        /// <returns type="ResourceDictionary" integer="False" />   
        return Convert.ToResourceDictionary(this.element.resources);
    },

    set_tag: function(value)
    {
        /// <summary>Gets or sets an object that can be used for user storage or information passing.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.tag = value;
    },

    get_tag: function()
    {
        /// <summary>Gets or sets an object that can be used for user storage or information passing.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.tag);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    captureMouse: function()
    {
         /// <summary>Enables mouse capture for the object.</summary>
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({});
        return (this.element.captureMouse());
    },

    releaseMouseCapture: function()
    {
         /// <summary>Disables mouse capture for the object.</summary>
        TypeSafety({});
        return (this.element.releaseMouseCapture());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    add_Loaded : function(handler) {
        /// <summary>Fired when the Silverlight content is loaded into the host Silverlight plugin and parsed, but before the content is rendered.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("Loaded", handler);
    },
    
    remove_Loaded : function(eventId) {
        /// <summary>Fired when the Silverlight content is loaded into the host Silverlight plugin and parsed, but before the content is rendered.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_Loaded</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("Loaded", eventId)
    },

    add_MouseMove : function(handler) {
        /// <summary>Occurs when the coordinate position of the mouse changes.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseMove", handler);
    },
    
    remove_MouseMove : function(eventId) {
        /// <summary>Occurs when the coordinate position of the mouse changes.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseMove</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseMove", eventId)
    },

    add_MouseEnter : function(handler) {
        /// <summary>Occurs when the mouse enters the bounding area of an object.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseEnter", handler);
    },
    
    remove_MouseEnter : function(eventId) {
        /// <summary>Occurs when the mouse enters the bounding area of an object.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseEnter</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseEnter", eventId)
    },

    add_MouseLeave : function(handler) {
        /// <summary>Occurs when the mouse leaves the bounding area of an object.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseLeave", handler);
    },
    
    remove_MouseLeave : function(eventId) {
        /// <summary>Occurs when the mouse leaves the bounding area of an object.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseLeave</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseLeave", eventId)
    },

    add_MouseLeftButtonDown : function(handler) {
        /// <summary>Occurs when the left mouse button is depressed.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseLeftButtonDown", handler);
    },
    
    remove_MouseLeftButtonDown : function(eventId) {
        /// <summary>Occurs when the left mouse button is depressed.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseLeftButtonDown</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseLeftButtonDown", eventId)
    },

    add_MouseLeftButtonUp : function(handler) {
        /// <summary>Occurs when the left mouse button is released.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("MouseLeftButtonUp", handler);
    },
    
    remove_MouseLeftButtonUp : function(eventId) {
        /// <summary>Occurs when the left mouse button is released.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_MouseLeftButtonUp</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("MouseLeftButtonUp", eventId)
    },

    add_KeyUp : function(handler) {
        /// <summary>Occurs when the key is released while the plugin has focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("KeyUp", handler);
    },
    
    remove_KeyUp : function(eventId) {
        /// <summary>Occurs when the key is released while the plugin has focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_KeyUp</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("KeyUp", eventId)
    },

    add_KeyDown : function(handler) {
        /// <summary>Occurs when the key is pressed while the content has focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("KeyDown", handler);
    },
    
    remove_KeyDown : function(eventId) {
        /// <summary>Occurs when the key is pressed while the content has focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_KeyDown</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("KeyDown", eventId)
    },

    add_GotFocus : function(handler) {
        /// <summary>Occurs when an object receives focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("GotFocus", handler);
    },
    
    remove_GotFocus : function(eventId) {
        /// <summary>Occurs when an object receives focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_GotFocus</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("GotFocus", eventId)
    },

    add_LostFocus : function(handler) {
        /// <summary>Occurs when an object loses focus.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("LostFocus", handler);
    },
    
    remove_LostFocus : function(eventId) {
        /// <summary>Occurs when an object loses focus.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_LostFocus</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("LostFocus", eventId)
    }
}

Collection = function(CollectionXamlElement) 
{
        /// <summary>Represents a collection of objects.</summary>
        /// <param name="CollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = CollectionXamlElement;
}
Collection.createFromXaml = function(Host)
{
    /// <returns type="Collection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Collection(Host.content.createFromXaml("<Collection />"));
    } catch (ex) {}
    if (Host.getHost)
        return Collection.CreateNew(Host.getHost());
    return;
}

Collection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="T" integer="False" />   
        return (this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="T" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"T":value});
        return (this.element.add(value));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="T" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"T":value});
        return (this.element.contains(value));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="T" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"T":value});
        return (this.element.indexOf(value));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="T" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "T":value});
        return (this.element.insert(index, value));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="T" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"T":value});
        return (this.element.remove(value));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="T[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"T[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

Inlines = function(InlinesXamlElement) 
{
        /// <summary></summary>
        /// <param name="InlinesXamlElement">Non strongly typed Xaml Element</param>
        this.element = InlinesXamlElement;
}
Inlines.createFromXaml = function(Host)
{
    /// <returns type="Inlines" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Inlines(Host.content.createFromXaml("<Inlines />"));
    } catch (ex) {}
    if (Host.getHost)
        return Inlines.CreateNew(Host.getHost());
    return;
}

Inlines.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="Inline" integer="False" />   
        return Convert.ToInline(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="Inline" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"Inline":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Inline" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Inline":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Inline" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Inline":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="Inline" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "Inline":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="Inline" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Inline":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="Inline[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"Inline[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

TriggerCollection = function(TriggerCollectionXamlElement) 
{
        /// <summary>Represents a collection of Trigger objects.</summary>
        /// <param name="TriggerCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = TriggerCollectionXamlElement;
}
TriggerCollection.createFromXaml = function(Host)
{
    /// <returns type="TriggerCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TriggerCollection(Host.content.createFromXaml("<TriggerCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return TriggerCollection.CreateNew(Host.getHost());
    return;
}

TriggerCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="EventTrigger" integer="False" />   
        return Convert.ToEventTrigger(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="EventTrigger" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"EventTrigger":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="EventTrigger" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"EventTrigger":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="EventTrigger" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"EventTrigger":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="EventTrigger" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "EventTrigger":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="EventTrigger" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"EventTrigger":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="EventTrigger[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"EventTrigger[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

EventTrigger = function(EventTriggerXamlElement) 
{
        /// <summary>Represents a trigger that applies a set of actions in response to an event.</summary>
        /// <param name="EventTriggerXamlElement">Non strongly typed Xaml Element</param>
        this.element = EventTriggerXamlElement;
}
EventTrigger.createFromXaml = function(Host)
{
    /// <returns type="EventTrigger" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new EventTrigger(Host.content.createFromXaml("<EventTrigger />"));
    } catch (ex) {}
    if (Host.getHost)
        return EventTrigger.CreateNew(Host.getHost());
    return;
}

EventTrigger.prototype =
{    set_routedEvent: function(value)
    {
        /// <summary>Gets or sets the object type and RoutedEvent that will activate this trigger. Only the Loaded event is supported.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.routedEvent = value;
    },

    get_routedEvent: function()
    {
        /// <summary>Gets or sets the object type and RoutedEvent that will activate this trigger. Only the Loaded event is supported.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.routedEvent);
    },

    set_actions: function(value)
    {
        /// <summary>Gets the collection of actions to apply when the event occurs.</summary>
        /// <param name="value" type="TriggerActionCollection" integer="False" />
        TypeSafety({"TriggerActionCollection" : value});   
        this.element.actions = value.element;
    },

    get_actions: function()
    {
        /// <summary>Gets the collection of actions to apply when the event occurs.</summary>
        /// <returns type="TriggerActionCollection" integer="False" />   
        return Convert.ToTriggerActionCollection(this.element.actions);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

TriggerActionCollection = function(TriggerActionCollectionXamlElement) 
{
        /// <summary>Represents a collection of TriggerAction objects that can be individually accessed by index.</summary>
        /// <param name="TriggerActionCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = TriggerActionCollectionXamlElement;
}
TriggerActionCollection.createFromXaml = function(Host)
{
    /// <returns type="TriggerActionCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TriggerActionCollection(Host.content.createFromXaml("<TriggerActionCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return TriggerActionCollection.CreateNew(Host.getHost());
    return;
}

TriggerActionCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="BeginStoryboard" integer="False" />   
        return Convert.ToBeginStoryboard(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="BeginStoryboard" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"BeginStoryboard":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="BeginStoryboard" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"BeginStoryboard":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="BeginStoryboard" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"BeginStoryboard":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="BeginStoryboard" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "BeginStoryboard":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="BeginStoryboard" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"BeginStoryboard":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="BeginStoryboard[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"BeginStoryboard[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

ErrorEventArgs = function(ErrorEventArgsXamlElement) 
{
        /// <summary>Provides data for the onError event.</summary>
        /// <param name="ErrorEventArgsXamlElement">Non strongly typed Xaml Element</param>
        this.element = ErrorEventArgsXamlElement;
}
ErrorEventArgs.createFromXaml = function(Host)
{
    /// <returns type="ErrorEventArgs" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ErrorEventArgs(Host.content.createFromXaml("<ErrorEventArgs />"));
    } catch (ex) {}
    if (Host.getHost)
        return ErrorEventArgs.CreateNew(Host.getHost());
    return;
}

ErrorEventArgs.prototype =
{    set_errorMessage: function(value)
    {
        /// <summary>Gets the error description associated with the error.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.errorMessage = value;
    },

    get_errorMessage: function()
    {
        /// <summary>Gets the error description associated with the error.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.errorMessage);
    },

    set_errorCode: function(value)
    {
        /// <summary>Gets the error code associted witht he error.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.errorCode = value;
    },

    get_errorCode: function()
    {
        /// <summary>Gets the error code associted witht he error.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.errorCode);
    },

    set_errorType: function(value)
    {
        /// <summary>Gets the ErrorType of the error associated with the event.</summary>
        /// <param name="value" type="ErrorType" integer="False" />
        TypeSafety({"ErrorType" : value});   
        this.element.errorType = value.element;
    },

    get_errorType: function()
    {
        /// <summary>Gets the ErrorType of the error associated with the event.</summary>
        /// <returns type="ErrorType" integer="False" />   
        return Convert.ToErrorType(this.element.errorType);
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

ParserErrorEventArgs = function(ParserErrorEventArgsXamlElement) 
{
        /// <summary>Provides data for XAML parser error events.</summary>
        /// <param name="ParserErrorEventArgsXamlElement">Non strongly typed Xaml Element</param>
        this.element = ParserErrorEventArgsXamlElement;
}
ParserErrorEventArgs.createFromXaml = function(Host)
{
    /// <returns type="ParserErrorEventArgs" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ParserErrorEventArgs(Host.content.createFromXaml("<ParserErrorEventArgs />"));
    } catch (ex) {}
    if (Host.getHost)
        return ParserErrorEventArgs.CreateNew(Host.getHost());
    return;
}

ParserErrorEventArgs.prototype =
{    set_xamlFile: function(value)
    {
        /// <summary>Gets the name of the Xaml file that the parser error occurred in.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.xamlFile = value;
    },

    get_xamlFile: function()
    {
        /// <summary>Gets the name of the Xaml file that the parser error occurred in.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.xamlFile);
    },

    set_lineNumber: function(value)
    {
        /// <summary>Gets the line number at which the parser error occurred.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.lineNumber = value;
    },

    get_lineNumber: function()
    {
        /// <summary>Gets the line number at which the parser error occurred.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.lineNumber);
    },

    set_charPosition: function(value)
    {
        /// <summary>The character position within the line that the parser error occurred on.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.charPosition = value;
    },

    get_charPosition: function()
    {
        /// <summary>The character position within the line that the parser error occurred on.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.charPosition);
    },

    set_xmlElement: function(value)
    {
        /// <summary>Gets the xml element that the parser error occurred in.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.xmlElement = value;
    },

    get_xmlElement: function()
    {
        /// <summary>Gets the xml element that the parser error occurred in.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.xmlElement);
    },

    set_xmlAttribute: function(value)
    {
        /// <summary>Gets the xml attribute that the parser error occurred in.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.xmlAttribute = value;
    },

    get_xmlAttribute: function()
    {
        /// <summary>Gets the xml attribute that the parser error occurred in.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.xmlAttribute);
    },

    set_errorMessage: function(value)
    {
        /// <summary>Gets the error description associated with the error.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.errorMessage = value;
    },

    get_errorMessage: function()
    {
        /// <summary>Gets the error description associated with the error.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.errorMessage);
    },

    set_errorCode: function(value)
    {
        /// <summary>Gets the error code associted witht he error.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.errorCode = value;
    },

    get_errorCode: function()
    {
        /// <summary>Gets the error code associted witht he error.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.errorCode);
    },

    set_errorType: function(value)
    {
        /// <summary>Gets the ErrorType of the error associated with the event.</summary>
        /// <param name="value" type="ErrorType" integer="False" />
        TypeSafety({"ErrorType" : value});   
        this.element.errorType = value.element;
    },

    get_errorType: function()
    {
        /// <summary>Gets the ErrorType of the error associated with the event.</summary>
        /// <returns type="ErrorType" integer="False" />   
        return Convert.ToErrorType(this.element.errorType);
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

RuntimeErrorEventArgs = function(RuntimeErrorEventArgsXamlElement) 
{
        /// <summary>Provides data for runtime error events.</summary>
        /// <param name="RuntimeErrorEventArgsXamlElement">Non strongly typed Xaml Element</param>
        this.element = RuntimeErrorEventArgsXamlElement;
}
RuntimeErrorEventArgs.createFromXaml = function(Host)
{
    /// <returns type="RuntimeErrorEventArgs" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new RuntimeErrorEventArgs(Host.content.createFromXaml("<RuntimeErrorEventArgs />"));
    } catch (ex) {}
    if (Host.getHost)
        return RuntimeErrorEventArgs.CreateNew(Host.getHost());
    return;
}

RuntimeErrorEventArgs.prototype =
{    set_methodName: function(value)
    {
        /// <summary>Gets the name of the method associated with the runtime error.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.methodName = value;
    },

    get_methodName: function()
    {
        /// <summary>Gets the name of the method associated with the runtime error.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.methodName);
    },

    set_lineNumber: function(value)
    {
        /// <summary>Gets the line number at which the parser error occurred.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.lineNumber = value;
    },

    get_lineNumber: function()
    {
        /// <summary>Gets the line number at which the parser error occurred.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.lineNumber);
    },

    set_charPosition: function(value)
    {
        /// <summary>The character position within the line that the parser error occurred on.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.charPosition = value;
    },

    get_charPosition: function()
    {
        /// <summary>The character position within the line that the parser error occurred on.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.charPosition);
    },

    set_errorMessage: function(value)
    {
        /// <summary>Gets the error description associated with the error.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.errorMessage = value;
    },

    get_errorMessage: function()
    {
        /// <summary>Gets the error description associated with the error.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.errorMessage);
    },

    set_errorCode: function(value)
    {
        /// <summary>Gets the error code associted witht he error.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.errorCode = value;
    },

    get_errorCode: function()
    {
        /// <summary>Gets the error code associted witht he error.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.errorCode);
    },

    set_errorType: function(value)
    {
        /// <summary>Gets the ErrorType of the error associated with the event.</summary>
        /// <param name="value" type="ErrorType" integer="False" />
        TypeSafety({"ErrorType" : value});   
        this.element.errorType = value.element;
    },

    get_errorType: function()
    {
        /// <summary>Gets the ErrorType of the error associated with the event.</summary>
        /// <returns type="ErrorType" integer="False" />   
        return Convert.ToErrorType(this.element.errorType);
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

Downloader = function(DownloaderXamlElement) 
{
        /// <summary>Represents the set of download functionality for a Silverlight plugin. The downloader can asynchronously download any content that can be obtained through an HTTP GET request.</summary>
        /// <param name="DownloaderXamlElement">Non strongly typed Xaml Element</param>
        this.element = DownloaderXamlElement;
}
Downloader.createFromXaml = function(Host)
{
    /// <returns type="Downloader" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Downloader(Host.content.createFromXaml("<Downloader />"));
    } catch (ex) {}
    if (Host.getHost)
        return Downloader.CreateNew(Host.getHost());
    return;
}

Downloader.prototype =
{    set_downloadProgress: function(value)
    {
        /// <summary>Gets a value that indicates the percentage of downloaded content.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.downloadProgress = value;
    },

    get_downloadProgress: function()
    {
        /// <summary>Gets a value that indicates the percentage of downloaded content.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.downloadProgress);
    },

    set_responseText: function(value)
    {
        /// <summary>Gets downloaded data from a successful download request.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.responseText = value;
    },

    get_responseText: function()
    {
        /// <summary>Gets downloaded data from a successful download request.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.responseText);
    },

    set_status: function(value)
    {
        /// <summary>Gets the current status of the Downloader object request.</summary>
        /// <param name="value" type="Number" integer="True" />
        TypeSafety({"Number" : value});   
        this.element.status = value;
    },

    get_status: function()
    {
        /// <summary>Gets the current status of the Downloader object request.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.status);
    },

    set_statusText: function(value)
    {
        /// <summary>Gets the current status of the Downloader object request.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.statusText = value;
    },

    get_statusText: function()
    {
        /// <summary>Gets the current status of the Downloader object request.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.statusText);
    },

    set_uri: function(value)
    {
        /// <summary>Gets the Uniform Resource Identifier (URI) of the download request.</summary>
        /// <param name="value" type="String" integer="False" />
        TypeSafety({"String" : value});   
        this.element.uri = value;
    },

    get_uri: function()
    {
        /// <summary>Gets the Uniform Resource Identifier (URI) of the download request.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.uri);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    send: function()
    {
         /// <summary>Executes a download request.</summary>
        TypeSafety({});
        return (this.element.send());
    },

    abort: function()
    {
         /// <summary>Cancels the downloader request and resets properties to their initial state.</summary>
        TypeSafety({});
        return (this.element.abort());
    },

    getResponseText: function(PartName)
    {
         /// <summary>Retrieves a specified part of packaged downloaded data.</summary>
        /// <param name="PartName" type="String" integer="False" >The name of the specific part of the downloaded content package.</param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":PartName});
        return (this.element.getResponseText(PartName));
    },

    open: function(verb, URI)
    {
         /// <summary>Initializes the download request.</summary>
        /// <param name="verb" type="String" integer="False" >The type of download action. The only supported action is "GET".</param>   
        /// <param name="URI" type="String" integer="False" >The Uniform Resource Identifier (URI) of the content to perform the download action.</param>   
        TypeSafety({"String":verb, "String":URI});
        return (this.element.open(verb, URI));
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    add_DownloadProgressChanged : function(handler) {
        /// <summary>Occurs while content is being downloaded during a download request.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("DownloadProgressChanged", handler);
    },
    
    remove_DownloadProgressChanged : function(eventId) {
        /// <summary>Occurs while content is being downloaded during a download request.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_DownloadProgressChanged</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("DownloadProgressChanged", eventId)
    },

    add_Completed : function(handler) {
        /// <summary>Occurs when a download request completes with content.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("Completed", handler);
    },
    
    remove_Completed : function(eventId) {
        /// <summary>Occurs when a download request completes with content.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_Completed</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("Completed", eventId)
    },

    add_DownloadFailed : function(handler) {
        /// <summary>Occurs when an attempted download request completes with no content.</summary>
        /// <param name="handler" type="Function" />
        /// <returns type="Number">eventId</returns>
        TypeSafety({"Function" : handler});
        return this.element.addEventListener("DownloadFailed", handler);
    },
    
    remove_DownloadFailed : function(eventId) {
        /// <summary>Occurs when an attempted download request completes with no content.</summary>
        /// <param name="eventId" type="Number">eventId returned from add_DownloadFailed</param>
        TypeSafety({"Number" : eventId});
        this.element.removeEventListener("DownloadFailed", eventId)
    }
}

ResourceDictionary = function(ResourceDictionaryXamlElement) 
{
        /// <summary>Represents a collection of Resource objects.</summary>
        /// <param name="ResourceDictionaryXamlElement">Non strongly typed Xaml Element</param>
        this.element = ResourceDictionaryXamlElement;
}
ResourceDictionary.createFromXaml = function(Host)
{
    /// <returns type="ResourceDictionary" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ResourceDictionary(Host.content.createFromXaml("<ResourceDictionary />"));
    } catch (ex) {}
    if (Host.getHost)
        return ResourceDictionary.CreateNew(Host.getHost());
    return;
}

ResourceDictionary.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="DependencyObject" integer="False" />   
        return Convert.ToDependencyObject(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="DependencyObject" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"DependencyObject":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="DependencyObject" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"DependencyObject":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="DependencyObject" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"DependencyObject":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="DependencyObject" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "DependencyObject":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="DependencyObject" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"DependencyObject":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="DependencyObject[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"DependencyObject[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

Stroke = function(StrokeXamlElement) 
{
        /// <summary>Represents a collection of points that correspond to a stylus-down, move, and stylus-up sequence.</summary>
        /// <param name="StrokeXamlElement">Non strongly typed Xaml Element</param>
        this.element = StrokeXamlElement;
}
Stroke.createFromXaml = function(Host)
{
    /// <returns type="Stroke" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Stroke(Host.content.createFromXaml("<Stroke />"));
    } catch (ex) {}
    if (Host.getHost)
        return Stroke.CreateNew(Host.getHost());
    return;
}

Stroke.prototype =
{    set_stylusPoints: function(value)
    {
        /// <summary>The collection of StylusPoint objects that make up the Stroke.</summary>
        /// <param name="value" type="StylusPointCollection" integer="False" />
        TypeSafety({"StylusPointCollection" : value});   
        this.element.stylusPoints = value.element;
    },

    get_stylusPoints: function()
    {
        /// <summary>The collection of StylusPoint objects that make up the Stroke.</summary>
        /// <returns type="StylusPointCollection" integer="False" />   
        return Convert.ToStylusPointCollection(this.element.stylusPoints);
    },

    set_drawingAttributes: function(value)
    {
        /// <summary>Specifies the appearance of the Stroke.</summary>
        /// <param name="value" type="DrawingAttributes" integer="False" />
        TypeSafety({"DrawingAttributes" : value});   
        this.element.drawingAttributes = value.element;
    },

    get_drawingAttributes: function()
    {
        /// <summary>Specifies the appearance of the Stroke.</summary>
        /// <returns type="DrawingAttributes" integer="False" />   
        return Convert.ToDrawingAttributes(this.element.drawingAttributes);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    getBounds: function()
    {
         /// <summary>Returns a Rect which is the bounding box of the strokes in the collection.</summary>
        /// <returns type="Rect" integer="False" />   
        TypeSafety({});
        return Convert.ToRect(this.element.getBounds());
    },

    hitTest: function(stylusPointCollection)
    {
         /// <summary></summary>
        /// <param name="stylusPointCollection" type="StylusPointCollection" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"StylusPointCollection":stylusPointCollection});
        return (this.element.hitTest(stylusPointCollection.element));
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

StrokeCollection = function(StrokeCollectionXamlElement) 
{
        /// <summary>Represents zero or more Stroke objects that are grouped together.</summary>
        /// <param name="StrokeCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = StrokeCollectionXamlElement;
}
StrokeCollection.createFromXaml = function(Host)
{
    /// <returns type="StrokeCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new StrokeCollection(Host.content.createFromXaml("<StrokeCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return StrokeCollection.CreateNew(Host.getHost());
    return;
}

StrokeCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="Stroke" integer="False" />   
        return Convert.ToStroke(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    getBounds: function()
    {
         /// <summary>Returns a Rect which is the bounding box of the strokes in the collection.</summary>
        /// <returns type="Rect" integer="False" />   
        TypeSafety({});
        return Convert.ToRect(this.element.getBounds());
    },

    hitTest: function(stylusPointCollection)
    {
         /// <summary></summary>
        /// <param name="stylusPointCollection" type="StylusPointCollection" integer="False" ></param>   
        /// <returns type="StrokeCollection" integer="False" />   
        TypeSafety({"StylusPointCollection":stylusPointCollection});
        return Convert.ToStrokeCollection(this.element.hitTest(stylusPointCollection.element));
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="Stroke" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"Stroke":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Stroke" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Stroke":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Stroke" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Stroke":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="Stroke" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "Stroke":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="Stroke" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Stroke":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="Stroke[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"Stroke[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

DrawingAttributes = function(DrawingAttributesXamlElement) 
{
        /// <summary>Represents the appearance of a Stroke.</summary>
        /// <param name="DrawingAttributesXamlElement">Non strongly typed Xaml Element</param>
        this.element = DrawingAttributesXamlElement;
}
DrawingAttributes.createFromXaml = function(Host)
{
    /// <returns type="DrawingAttributes" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new DrawingAttributes(Host.content.createFromXaml("<DrawingAttributes />"));
    } catch (ex) {}
    if (Host.getHost)
        return DrawingAttributes.CreateNew(Host.getHost());
    return;
}

DrawingAttributes.prototype =
{    set_color: function(value)
    {
        /// <summary>The color of the associated stroke.</summary>
        /// <param name="value" type="Color" integer="False" />
        TypeSafety({"Color" : value});   
        this.element.color = value.element;
    },

    get_color: function()
    {
        /// <summary>The color of the associated stroke.</summary>
        /// <returns type="Color" integer="False" />   
        return Convert.ToColor(this.element.color);
    },

    set_outlineColor: function(value)
    {
        /// <summary>The outline color of the associated stroke.</summary>
        /// <param name="value" type="Color" integer="False" />
        TypeSafety({"Color" : value});   
        this.element.outlineColor = value.element;
    },

    get_outlineColor: function()
    {
        /// <summary>The outline color of the associated stroke.</summary>
        /// <returns type="Color" integer="False" />   
        return Convert.ToColor(this.element.outlineColor);
    },

    set_width: function(value)
    {
        /// <summary>The width of the associated stroke.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.width = value;
    },

    get_width: function()
    {
        /// <summary>The width of the associated stroke.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.width);
    },

    set_height: function(value)
    {
        /// <summary>The height of the associated stroke.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.height = value;
    },

    get_height: function()
    {
        /// <summary>The height of the associated stroke.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.height);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

FillRule = function(FillRuleXamlElement) 
{
        /// <summary>Specifies how the intersecting areas of PathFigure objects contained in a Geometry are combined to form the area of the Geometry.</summary>
        /// <param name="FillRuleXamlElement">Non strongly typed Xaml Element</param>
        this.element = FillRuleXamlElement;
}
FillRule.createFromXaml = function(Host)
{
    /// <returns type="FillRule" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new FillRule(Host.content.createFromXaml("<FillRule />"));
    } catch (ex) {}
    if (Host.getHost)
        return FillRule.CreateNew(Host.getHost());
    return;
}

FillRule.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

SweepDirection = function(SweepDirectionXamlElement) 
{
        /// <summary>Defines the direction an elliptical arc is drawn.</summary>
        /// <param name="SweepDirectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = SweepDirectionXamlElement;
}
SweepDirection.createFromXaml = function(Host)
{
    /// <returns type="SweepDirection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new SweepDirection(Host.content.createFromXaml("<SweepDirection />"));
    } catch (ex) {}
    if (Host.getHost)
        return SweepDirection.CreateNew(Host.getHost());
    return;
}

SweepDirection.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

GradientSpreadMethod = function(GradientSpreadMethodXamlElement) 
{
        /// <summary>Specifies how to draw the gradient outside a gradient brush's gradient vector or space.</summary>
        /// <param name="GradientSpreadMethodXamlElement">Non strongly typed Xaml Element</param>
        this.element = GradientSpreadMethodXamlElement;
}
GradientSpreadMethod.createFromXaml = function(Host)
{
    /// <returns type="GradientSpreadMethod" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new GradientSpreadMethod(Host.content.createFromXaml("<GradientSpreadMethod />"));
    } catch (ex) {}
    if (Host.getHost)
        return GradientSpreadMethod.CreateNew(Host.getHost());
    return;
}

GradientSpreadMethod.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

ColorInterpolationMode = function(ColorInterpolationModeXamlElement) 
{
        /// <summary>Determines how the colors in a gradient are interpolated.</summary>
        /// <param name="ColorInterpolationModeXamlElement">Non strongly typed Xaml Element</param>
        this.element = ColorInterpolationModeXamlElement;
}
ColorInterpolationMode.createFromXaml = function(Host)
{
    /// <returns type="ColorInterpolationMode" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ColorInterpolationMode(Host.content.createFromXaml("<ColorInterpolationMode />"));
    } catch (ex) {}
    if (Host.getHost)
        return ColorInterpolationMode.CreateNew(Host.getHost());
    return;
}

ColorInterpolationMode.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

BrushMappingMode = function(BrushMappingModeXamlElement) 
{
        /// <summary>Specifies the coordinate system used by a Brush.</summary>
        /// <param name="BrushMappingModeXamlElement">Non strongly typed Xaml Element</param>
        this.element = BrushMappingModeXamlElement;
}
BrushMappingMode.createFromXaml = function(Host)
{
    /// <returns type="BrushMappingMode" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new BrushMappingMode(Host.content.createFromXaml("<BrushMappingMode />"));
    } catch (ex) {}
    if (Host.getHost)
        return BrushMappingMode.CreateNew(Host.getHost());
    return;
}

BrushMappingMode.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

AlignmentX = function(AlignmentXXamlElement) 
{
        /// <summary>Describes how content is positioned horizontally in a container.</summary>
        /// <param name="AlignmentXXamlElement">Non strongly typed Xaml Element</param>
        this.element = AlignmentXXamlElement;
}
AlignmentX.createFromXaml = function(Host)
{
    /// <returns type="AlignmentX" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new AlignmentX(Host.content.createFromXaml("<AlignmentX />"));
    } catch (ex) {}
    if (Host.getHost)
        return AlignmentX.CreateNew(Host.getHost());
    return;
}

AlignmentX.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

AlignmentY = function(AlignmentYXamlElement) 
{
        /// <summary>Describes how content is positioned vertically in a container.</summary>
        /// <param name="AlignmentYXamlElement">Non strongly typed Xaml Element</param>
        this.element = AlignmentYXamlElement;
}
AlignmentY.createFromXaml = function(Host)
{
    /// <returns type="AlignmentY" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new AlignmentY(Host.content.createFromXaml("<AlignmentY />"));
    } catch (ex) {}
    if (Host.getHost)
        return AlignmentY.CreateNew(Host.getHost());
    return;
}

AlignmentY.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

Stretch = function(StretchXamlElement) 
{
        /// <summary>Describes how content is resized to fill its allocated space.</summary>
        /// <param name="StretchXamlElement">Non strongly typed Xaml Element</param>
        this.element = StretchXamlElement;
}
Stretch.createFromXaml = function(Host)
{
    /// <returns type="Stretch" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Stretch(Host.content.createFromXaml("<Stretch />"));
    } catch (ex) {}
    if (Host.getHost)
        return Stretch.CreateNew(Host.getHost());
    return;
}

Stretch.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

PenLineCap = function(PenLineCapXamlElement) 
{
        /// <summary>Describes the shape at the end of a line or segment.</summary>
        /// <param name="PenLineCapXamlElement">Non strongly typed Xaml Element</param>
        this.element = PenLineCapXamlElement;
}
PenLineCap.createFromXaml = function(Host)
{
    /// <returns type="PenLineCap" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PenLineCap(Host.content.createFromXaml("<PenLineCap />"));
    } catch (ex) {}
    if (Host.getHost)
        return PenLineCap.CreateNew(Host.getHost());
    return;
}

PenLineCap.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

PenLineJoin = function(PenLineJoinXamlElement) 
{
        /// <summary>Describes the shape that joins two lines or segments.</summary>
        /// <param name="PenLineJoinXamlElement">Non strongly typed Xaml Element</param>
        this.element = PenLineJoinXamlElement;
}
PenLineJoin.createFromXaml = function(Host)
{
    /// <returns type="PenLineJoin" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PenLineJoin(Host.content.createFromXaml("<PenLineJoin />"));
    } catch (ex) {}
    if (Host.getHost)
        return PenLineJoin.CreateNew(Host.getHost());
    return;
}

PenLineJoin.prototype =
{    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    toString: function(format, provider)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format, "IFormatProvider":provider});
        return (this.element.toString(format, provider));
    },

    compareTo: function(target)
    {
         /// <summary></summary>
        /// <param name="target" type="Object" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Object":target});
        return (this.element.compareTo(target));
    },

    toString: function(format)
    {
         /// <summary></summary>
        /// <param name="format" type="String" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"String":format});
        return (this.element.toString(format));
    },

    toString: function(provider)
    {
         /// <summary></summary>
        /// <param name="provider" type="IFormatProvider" integer="False" ></param>   
        /// <returns type="String" integer="False" />   
        TypeSafety({"IFormatProvider":provider});
        return (this.element.toString(provider));
    },

    getTypeCode: function()
    {
         /// <summary></summary>
        /// <returns type="TypeCode" integer="False" />   
        TypeSafety({});
        return (this.element.getTypeCode());
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    }
}

Transform = function(TransformXamlElement) 
{
        /// <summary>Defines functionality that enables transformations in a 2-D plane. Transformations include rotation (RotateTransform), scale (ScaleTransform), skew (SkewTransform), and translation (TranslateTransform).</summary>
        /// <param name="TransformXamlElement">Non strongly typed Xaml Element</param>
        this.element = TransformXamlElement;
}
Transform.createFromXaml = function(Host)
{
    /// <returns type="Transform" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Transform(Host.content.createFromXaml("<Transform />"));
    } catch (ex) {}
    if (Host.getHost)
        return Transform.CreateNew(Host.getHost());
    return;
}

Transform.prototype =
{    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PathSegment = function(PathSegmentXamlElement) 
{
        /// <summary>Represents a segment of a PathFigure object.</summary>
        /// <param name="PathSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = PathSegmentXamlElement;
}
PathSegment.createFromXaml = function(Host)
{
    /// <returns type="PathSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PathSegment(Host.content.createFromXaml("<PathSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return PathSegment.CreateNew(Host.getHost());
    return;
}

PathSegment.prototype =
{    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

Brush = function(BrushXamlElement) 
{
        /// <summary>Defines objects used to paint graphical objects.</summary>
        /// <param name="BrushXamlElement">Non strongly typed Xaml Element</param>
        this.element = BrushXamlElement;
}
Brush.createFromXaml = function(Host)
{
    /// <returns type="Brush" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Brush(Host.content.createFromXaml("<Brush />"));
    } catch (ex) {}
    if (Host.getHost)
        return Brush.CreateNew(Host.getHost());
    return;
}

Brush.prototype =
{    set_opacity: function(value)
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.opacity = value;
    },

    get_opacity: function()
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.opacity);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    set_relativeTransform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.relativeTransform = value.element;
    },

    get_relativeTransform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.relativeTransform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

TileBrush = function(TileBrushXamlElement) 
{
        /// <summary></summary>
        /// <param name="TileBrushXamlElement">Non strongly typed Xaml Element</param>
        this.element = TileBrushXamlElement;
}
TileBrush.createFromXaml = function(Host)
{
    /// <returns type="TileBrush" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TileBrush(Host.content.createFromXaml("<TileBrush />"));
    } catch (ex) {}
    if (Host.getHost)
        return TileBrush.CreateNew(Host.getHost());
    return;
}

TileBrush.prototype =
{    set_alignmentX: function(value)
    {
        /// <summary>Gets or sets the horizontal alignment of images in the ImageBrush.</summary>
        /// <param name="value" type="AlignmentX" integer="False" />
        TypeSafety({"AlignmentX" : value});   
        this.element.alignmentX = value.element;
    },

    get_alignmentX: function()
    {
        /// <summary>Gets or sets the horizontal alignment of images in the ImageBrush.</summary>
        /// <returns type="AlignmentX" integer="False" />   
        return Convert.ToAlignmentX(this.element.alignmentX);
    },

    set_alignmentY: function(value)
    {
        /// <summary>Gets or sets the vertical alignment of images in the ImageBrush.</summary>
        /// <param name="value" type="AlignmentY" integer="False" />
        TypeSafety({"AlignmentY" : value});   
        this.element.alignmentY = value.element;
    },

    get_alignmentY: function()
    {
        /// <summary>Gets or sets the vertical alignment of images in the ImageBrush.</summary>
        /// <returns type="AlignmentY" integer="False" />   
        return Convert.ToAlignmentY(this.element.alignmentY);
    },

    set_stretch: function(value)
    {
        /// <summary>Gets or sets a value that specifies how the content of this brush stretches.</summary>
        /// <param name="value" type="Stretch" integer="False" />
        TypeSafety({"Stretch" : value});   
        this.element.stretch = value.element;
    },

    get_stretch: function()
    {
        /// <summary>Gets or sets a value that specifies how the content of this brush stretches.</summary>
        /// <returns type="Stretch" integer="False" />   
        return Convert.ToStretch(this.element.stretch);
    },

    set_opacity: function(value)
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.opacity = value;
    },

    get_opacity: function()
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.opacity);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    set_relativeTransform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.relativeTransform = value.element;
    },

    get_relativeTransform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.relativeTransform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

Geometry = function(GeometryXamlElement) 
{
        /// <summary>Classes that derive from this abstract base class define geometric shapes. Geometry objects can be used for clipping, hit-testing, and rendering 2-D graphic data.</summary>
        /// <param name="GeometryXamlElement">Non strongly typed Xaml Element</param>
        this.element = GeometryXamlElement;
}
Geometry.createFromXaml = function(Host)
{
    /// <returns type="Geometry" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new Geometry(Host.content.createFromXaml("<Geometry />"));
    } catch (ex) {}
    if (Host.getHost)
        return Geometry.CreateNew(Host.getHost());
    return;
}

Geometry.prototype =
{    set_fillRule: function(value)
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <param name="value" type="FillRule" integer="False" />
        TypeSafety({"FillRule" : value});   
        this.element.fillRule = value.element;
    },

    get_fillRule: function()
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <returns type="FillRule" integer="False" />   
        return Convert.ToFillRule(this.element.fillRule);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

RotateTransform = function(RotateTransformXamlElement) 
{
        /// <summary>Rotates an object clockwise about a specified point in a 2-D x-y coordinate system.</summary>
        /// <param name="RotateTransformXamlElement">Non strongly typed Xaml Element</param>
        this.element = RotateTransformXamlElement;
}
RotateTransform.createFromXaml = function(Host)
{
    /// <returns type="RotateTransform" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new RotateTransform(Host.content.createFromXaml("<RotateTransform />"));
    } catch (ex) {}
    if (Host.getHost)
        return RotateTransform.CreateNew(Host.getHost());
    return;
}

RotateTransform.prototype =
{    set_centerX: function(value)
    {
        /// <summary>Gets or sets the x-coordinate of the rotation center point.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.centerX = value;
    },

    get_centerX: function()
    {
        /// <summary>Gets or sets the x-coordinate of the rotation center point.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.centerX);
    },

    set_centerY: function(value)
    {
        /// <summary>Gets or sets the y-coordinate of the rotation center point.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.centerY = value;
    },

    get_centerY: function()
    {
        /// <summary>Gets or sets the y-coordinate of the rotation center point.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.centerY);
    },

    set_angle: function(value)
    {
        /// <summary>Gets or sets the amount (in degrees) by which the ellipse is rotated about the x-axis.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.angle = value;
    },

    get_angle: function()
    {
        /// <summary>Gets or sets the amount (in degrees) by which the ellipse is rotated about the x-axis.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.angle);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

ScaleTransform = function(ScaleTransformXamlElement) 
{
        /// <summary>Scales an object in the 2-D x-y coordinate system.</summary>
        /// <param name="ScaleTransformXamlElement">Non strongly typed Xaml Element</param>
        this.element = ScaleTransformXamlElement;
}
ScaleTransform.createFromXaml = function(Host)
{
    /// <returns type="ScaleTransform" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ScaleTransform(Host.content.createFromXaml("<ScaleTransform />"));
    } catch (ex) {}
    if (Host.getHost)
        return ScaleTransform.CreateNew(Host.getHost());
    return;
}

ScaleTransform.prototype =
{    set_centerX: function(value)
    {
        /// <summary>Gets or sets the x-coordinate of the rotation center point.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.centerX = value;
    },

    get_centerX: function()
    {
        /// <summary>Gets or sets the x-coordinate of the rotation center point.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.centerX);
    },

    set_centerY: function(value)
    {
        /// <summary>Gets or sets the y-coordinate of the rotation center point.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.centerY = value;
    },

    get_centerY: function()
    {
        /// <summary>Gets or sets the y-coordinate of the rotation center point.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.centerY);
    },

    set_scaleX: function(value)
    {
        /// <summary>Gets or sets the x-axis scale factor.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.scaleX = value;
    },

    get_scaleX: function()
    {
        /// <summary>Gets or sets the x-axis scale factor.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.scaleX);
    },

    set_scaleY: function(value)
    {
        /// <summary>Gets or sets the y-axis scale factor.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.scaleY = value;
    },

    get_scaleY: function()
    {
        /// <summary>Gets or sets the y-axis scale factor.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.scaleY);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

SkewTransform = function(SkewTransformXamlElement) 
{
        /// <summary>Represents a 2-D skew.</summary>
        /// <param name="SkewTransformXamlElement">Non strongly typed Xaml Element</param>
        this.element = SkewTransformXamlElement;
}
SkewTransform.createFromXaml = function(Host)
{
    /// <returns type="SkewTransform" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new SkewTransform(Host.content.createFromXaml("<SkewTransform />"));
    } catch (ex) {}
    if (Host.getHost)
        return SkewTransform.CreateNew(Host.getHost());
    return;
}

SkewTransform.prototype =
{    set_centerX: function(value)
    {
        /// <summary>Gets or sets the x-coordinate of the rotation center point.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.centerX = value;
    },

    get_centerX: function()
    {
        /// <summary>Gets or sets the x-coordinate of the rotation center point.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.centerX);
    },

    set_centerY: function(value)
    {
        /// <summary>Gets or sets the y-coordinate of the rotation center point.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.centerY = value;
    },

    get_centerY: function()
    {
        /// <summary>Gets or sets the y-coordinate of the rotation center point.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.centerY);
    },

    set_angleX: function(value)
    {
        /// <summary>Gets or sets the x-axis skew angle, which is measured in degrees counterclockwise from the y-axis.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.angleX = value;
    },

    get_angleX: function()
    {
        /// <summary>Gets or sets the x-axis skew angle, which is measured in degrees counterclockwise from the y-axis.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.angleX);
    },

    set_angleY: function(value)
    {
        /// <summary>Gets or sets the y-axis skew angle, which is measured in degrees counterclockwise from the x-axis.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.angleY = value;
    },

    get_angleY: function()
    {
        /// <summary>Gets or sets the y-axis skew angle, which is measured in degrees counterclockwise from the x-axis.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.angleY);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

TranslateTransform = function(TranslateTransformXamlElement) 
{
        /// <summary>Translates (moves) an object in the 2-D x-y coordinate system.</summary>
        /// <param name="TranslateTransformXamlElement">Non strongly typed Xaml Element</param>
        this.element = TranslateTransformXamlElement;
}
TranslateTransform.createFromXaml = function(Host)
{
    /// <returns type="TranslateTransform" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TranslateTransform(Host.content.createFromXaml("<TranslateTransform />"));
    } catch (ex) {}
    if (Host.getHost)
        return TranslateTransform.CreateNew(Host.getHost());
    return;
}

TranslateTransform.prototype =
{    set_x: function(value)
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.x = value;
    },

    get_x: function()
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.x);
    },

    set_y: function(value)
    {
        /// <summary>Gets or sets the total amount by which the animation changes its starting value.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.y = value;
    },

    get_y: function()
    {
        /// <summary>Gets or sets the total amount by which the animation changes its starting value.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.y);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

TransformCollection = function(TransformCollectionXamlElement) 
{
        /// <summary>Represents a collection of Transform objects that can be individually accessed by index.</summary>
        /// <param name="TransformCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = TransformCollectionXamlElement;
}
TransformCollection.createFromXaml = function(Host)
{
    /// <returns type="TransformCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TransformCollection(Host.content.createFromXaml("<TransformCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return TransformCollection.CreateNew(Host.getHost());
    return;
}

TransformCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="Transform" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"Transform":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Transform" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Transform":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Transform" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Transform":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="Transform" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "Transform":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="Transform" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Transform":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="Transform[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"Transform[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

TransformGroup = function(TransformGroupXamlElement) 
{
        /// <summary>Represents a composite Transform composed of other Transform objects.</summary>
        /// <param name="TransformGroupXamlElement">Non strongly typed Xaml Element</param>
        this.element = TransformGroupXamlElement;
}
TransformGroup.createFromXaml = function(Host)
{
    /// <returns type="TransformGroup" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new TransformGroup(Host.content.createFromXaml("<TransformGroup />"));
    } catch (ex) {}
    if (Host.getHost)
        return TransformGroup.CreateNew(Host.getHost());
    return;
}

TransformGroup.prototype =
{    set_children: function(value)
    {
        /// <summary>Gets or sets the collection of child elements on the Canvas.</summary>
        /// <param name="value" type="TransformCollection" integer="False" />
        TypeSafety({"TransformCollection" : value});   
        this.element.children = value.element;
    },

    get_children: function()
    {
        /// <summary>Gets or sets the collection of child elements on the Canvas.</summary>
        /// <returns type="TransformCollection" integer="False" />   
        return Convert.ToTransformCollection(this.element.children);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

MatrixTransform = function(MatrixTransformXamlElement) 
{
        /// <summary>Creates an arbitrary affine matrix transformation that is used to manipulate objects or coordinate systems in a 2-D plane.</summary>
        /// <param name="MatrixTransformXamlElement">Non strongly typed Xaml Element</param>
        this.element = MatrixTransformXamlElement;
}
MatrixTransform.createFromXaml = function(Host)
{
    /// <returns type="MatrixTransform" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new MatrixTransform(Host.content.createFromXaml("<MatrixTransform />"));
    } catch (ex) {}
    if (Host.getHost)
        return MatrixTransform.CreateNew(Host.getHost());
    return;
}

MatrixTransform.prototype =
{    set_matrix: function(value)
    {
        /// <summary>Gets or sets the Matrix structure that defines this transformation.</summary>
        /// <param name="value" type="Matrix" integer="False" />
        TypeSafety({"Matrix" : value});   
        this.element.matrix = value.element;
    },

    get_matrix: function()
    {
        /// <summary>Gets or sets the Matrix structure that defines this transformation.</summary>
        /// <returns type="Matrix" integer="False" />   
        return Convert.ToMatrix(this.element.matrix);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

LineSegment = function(LineSegmentXamlElement) 
{
        /// <summary>Represents a line drawn between two points.</summary>
        /// <param name="LineSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = LineSegmentXamlElement;
}
LineSegment.createFromXaml = function(Host)
{
    /// <returns type="LineSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new LineSegment(Host.content.createFromXaml("<LineSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return LineSegment.CreateNew(Host.getHost());
    return;
}

LineSegment.prototype =
{    set_point: function(value)
    {
        /// <summary>Gets or sets the endpoint of the elliptical arc.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.point = value.element;
    },

    get_point: function()
    {
        /// <summary>Gets or sets the endpoint of the elliptical arc.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.point);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

BezierSegment = function(BezierSegmentXamlElement) 
{
        /// <summary>Represents a cubic Bezier curve drawn between two points.</summary>
        /// <param name="BezierSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = BezierSegmentXamlElement;
}
BezierSegment.createFromXaml = function(Host)
{
    /// <returns type="BezierSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new BezierSegment(Host.content.createFromXaml("<BezierSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return BezierSegment.CreateNew(Host.getHost());
    return;
}

BezierSegment.prototype =
{    set_point1: function(value)
    {
        /// <summary>Gets or sets the first control point of the curve.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.point1 = value.element;
    },

    get_point1: function()
    {
        /// <summary>Gets or sets the first control point of the curve.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.point1);
    },

    set_point2: function(value)
    {
        /// <summary>Gets or sets the second control point of the curve.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.point2 = value.element;
    },

    get_point2: function()
    {
        /// <summary>Gets or sets the second control point of the curve.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.point2);
    },

    set_point3: function(value)
    {
        /// <summary>Gets or sets the end point of the curve.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.point3 = value.element;
    },

    get_point3: function()
    {
        /// <summary>Gets or sets the end point of the curve.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.point3);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

QuadraticBezierSegment = function(QuadraticBezierSegmentXamlElement) 
{
        /// <summary>Creates a quadratic Bezier curve between two points in a PathFigure.</summary>
        /// <param name="QuadraticBezierSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = QuadraticBezierSegmentXamlElement;
}
QuadraticBezierSegment.createFromXaml = function(Host)
{
    /// <returns type="QuadraticBezierSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new QuadraticBezierSegment(Host.content.createFromXaml("<QuadraticBezierSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return QuadraticBezierSegment.CreateNew(Host.getHost());
    return;
}

QuadraticBezierSegment.prototype =
{    set_point1: function(value)
    {
        /// <summary>Gets or sets the first control point of the curve.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.point1 = value.element;
    },

    get_point1: function()
    {
        /// <summary>Gets or sets the first control point of the curve.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.point1);
    },

    set_point2: function(value)
    {
        /// <summary>Gets or sets the second control point of the curve.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.point2 = value.element;
    },

    get_point2: function()
    {
        /// <summary>Gets or sets the second control point of the curve.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.point2);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

ArcSegment = function(ArcSegmentXamlElement) 
{
        /// <summary>Represents an elliptical arc between two points.</summary>
        /// <param name="ArcSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = ArcSegmentXamlElement;
}
ArcSegment.createFromXaml = function(Host)
{
    /// <returns type="ArcSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new ArcSegment(Host.content.createFromXaml("<ArcSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return ArcSegment.CreateNew(Host.getHost());
    return;
}

ArcSegment.prototype =
{    set_point: function(value)
    {
        /// <summary>Gets or sets the endpoint of the elliptical arc.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.point = value.element;
    },

    get_point: function()
    {
        /// <summary>Gets or sets the endpoint of the elliptical arc.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.point);
    },

    set_size: function(value)
    {
        /// <summary>Gets or sets the x- and y-radius of the arc as a Size structure.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.size = value.element;
    },

    get_size: function()
    {
        /// <summary>Gets or sets the x- and y-radius of the arc as a Size structure.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.size);
    },

    set_rotationAngle: function(value)
    {
        /// <summary>Gets or sets the amount (in degrees) by which the ellipse is rotated about the x-axis.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.rotationAngle = value;
    },

    get_rotationAngle: function()
    {
        /// <summary>Gets or sets the amount (in degrees) by which the ellipse is rotated about the x-axis.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.rotationAngle);
    },

    set_isLargeArc: function(value)
    {
        /// <summary>Gets or sets a value that indicates whether the arc should be greater than 180 degrees.</summary>
        /// <param name="value" type="Boolean" integer="False" />
        TypeSafety({"Boolean" : value});   
        this.element.isLargeArc = value;
    },

    get_isLargeArc: function()
    {
        /// <summary>Gets or sets a value that indicates whether the arc should be greater than 180 degrees.</summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isLargeArc);
    },

    set_sweepDirection: function(value)
    {
        /// <summary>Gets or sets a value that specifies whether the arc is drawn in the Clockwise or Counterclockwise direction.</summary>
        /// <param name="value" type="SweepDirection" integer="False" />
        TypeSafety({"SweepDirection" : value});   
        this.element.sweepDirection = value.element;
    },

    get_sweepDirection: function()
    {
        /// <summary>Gets or sets a value that specifies whether the arc is drawn in the Clockwise or Counterclockwise direction.</summary>
        /// <returns type="SweepDirection" integer="False" />   
        return Convert.ToSweepDirection(this.element.sweepDirection);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PolyLineSegment = function(PolyLineSegmentXamlElement) 
{
        /// <summary>Represents a set of line segments defined by a PointCollection with each Point specifying the end point of a line segment.</summary>
        /// <param name="PolyLineSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = PolyLineSegmentXamlElement;
}
PolyLineSegment.createFromXaml = function(Host)
{
    /// <returns type="PolyLineSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PolyLineSegment(Host.content.createFromXaml("<PolyLineSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return PolyLineSegment.CreateNew(Host.getHost());
    return;
}

PolyLineSegment.prototype =
{    set_points: function(value)
    {
        /// <summary>Gets or sets the PointCollection that define this PolyBezierSegment object.</summary>
        /// <param name="value" type="Point[]" integer="False" />
        TypeSafety({"Point[]" : value});   
        this.element.points = value;
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PolyBezierSegment = function(PolyBezierSegmentXamlElement) 
{
        /// <summary>Represents one or more cubic Bezier curves.</summary>
        /// <param name="PolyBezierSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = PolyBezierSegmentXamlElement;
}
PolyBezierSegment.createFromXaml = function(Host)
{
    /// <returns type="PolyBezierSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PolyBezierSegment(Host.content.createFromXaml("<PolyBezierSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return PolyBezierSegment.CreateNew(Host.getHost());
    return;
}

PolyBezierSegment.prototype =
{    set_points: function(value)
    {
        /// <summary>Gets or sets the PointCollection that define this PolyBezierSegment object.</summary>
        /// <param name="value" type="Point[]" integer="False" />
        TypeSafety({"Point[]" : value});   
        this.element.points = value;
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PolyQuadraticBezierSegment = function(PolyQuadraticBezierSegmentXamlElement) 
{
        /// <summary>Represents a set of quadratic Bezier segments.</summary>
        /// <param name="PolyQuadraticBezierSegmentXamlElement">Non strongly typed Xaml Element</param>
        this.element = PolyQuadraticBezierSegmentXamlElement;
}
PolyQuadraticBezierSegment.createFromXaml = function(Host)
{
    /// <returns type="PolyQuadraticBezierSegment" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PolyQuadraticBezierSegment(Host.content.createFromXaml("<PolyQuadraticBezierSegment />"));
    } catch (ex) {}
    if (Host.getHost)
        return PolyQuadraticBezierSegment.CreateNew(Host.getHost());
    return;
}

PolyQuadraticBezierSegment.prototype =
{    set_points: function(value)
    {
        /// <summary>Gets or sets the PointCollection that define this PolyBezierSegment object.</summary>
        /// <param name="value" type="Point[]" integer="False" />
        TypeSafety({"Point[]" : value});   
        this.element.points = value;
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PathSegmentCollection = function(PathSegmentCollectionXamlElement) 
{
        /// <summary>Represents a collection of PathSegment objects that can be individually accessed by index.</summary>
        /// <param name="PathSegmentCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = PathSegmentCollectionXamlElement;
}
PathSegmentCollection.createFromXaml = function(Host)
{
    /// <returns type="PathSegmentCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PathSegmentCollection(Host.content.createFromXaml("<PathSegmentCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return PathSegmentCollection.CreateNew(Host.getHost());
    return;
}

PathSegmentCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="PathSegment" integer="False" />   
        return Convert.ToPathSegment(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="PathSegment" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"PathSegment":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="PathSegment" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"PathSegment":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="PathSegment" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"PathSegment":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="PathSegment" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "PathSegment":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="PathSegment" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"PathSegment":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="PathSegment[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"PathSegment[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PathFigure = function(PathFigureXamlElement) 
{
        /// <summary>Represents a subsection of a geometry, a single connected series of two-dimensional geometric segments.</summary>
        /// <param name="PathFigureXamlElement">Non strongly typed Xaml Element</param>
        this.element = PathFigureXamlElement;
}
PathFigure.createFromXaml = function(Host)
{
    /// <returns type="PathFigure" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PathFigure(Host.content.createFromXaml("<PathFigure />"));
    } catch (ex) {}
    if (Host.getHost)
        return PathFigure.CreateNew(Host.getHost());
    return;
}

PathFigure.prototype =
{    set_segments: function(value)
    {
        /// <summary>Gets or sets the collection of segments that define the shape of this PathFigure object.</summary>
        /// <param name="value" type="PathSegmentCollection" integer="False" />
        TypeSafety({"PathSegmentCollection" : value});   
        this.element.segments = value.element;
    },

    get_segments: function()
    {
        /// <summary>Gets or sets the collection of segments that define the shape of this PathFigure object.</summary>
        /// <returns type="PathSegmentCollection" integer="False" />   
        return Convert.ToPathSegmentCollection(this.element.segments);
    },

    set_startPoint: function(value)
    {
        /// <summary>Gets or sets the starting two-dimensional coordinates of the linear gradient.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.startPoint = value.element;
    },

    get_startPoint: function()
    {
        /// <summary>Gets or sets the starting two-dimensional coordinates of the linear gradient.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.startPoint);
    },

    set_isClosed: function(value)
    {
        /// <summary>Gets or sets a value that specifies whether this figures first and last segments are connected.</summary>
        /// <param name="value" type="Boolean" integer="False" />
        TypeSafety({"Boolean" : value});   
        this.element.isClosed = value;
    },

    get_isClosed: function()
    {
        /// <summary>Gets or sets a value that specifies whether this figures first and last segments are connected.</summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isClosed);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PathFigureCollection = function(PathFigureCollectionXamlElement) 
{
        /// <summary>Represents a collection of PathFigure objects that collectively make up the geometry of a PathGeometry.</summary>
        /// <param name="PathFigureCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = PathFigureCollectionXamlElement;
}
PathFigureCollection.createFromXaml = function(Host)
{
    /// <returns type="PathFigureCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PathFigureCollection(Host.content.createFromXaml("<PathFigureCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return PathFigureCollection.CreateNew(Host.getHost());
    return;
}

PathFigureCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="PathFigure" integer="False" />   
        return Convert.ToPathFigure(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="PathFigure" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"PathFigure":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="PathFigure" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"PathFigure":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="PathFigure" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"PathFigure":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="PathFigure" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "PathFigure":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="PathFigure" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"PathFigure":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="PathFigure[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"PathFigure[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

PathGeometry = function(PathGeometryXamlElement) 
{
        /// <summary>Represents a complex shape that may be composed of arcs, curves, ellipses, lines, and rectangles.</summary>
        /// <param name="PathGeometryXamlElement">Non strongly typed Xaml Element</param>
        this.element = PathGeometryXamlElement;
}
PathGeometry.createFromXaml = function(Host)
{
    /// <returns type="PathGeometry" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new PathGeometry(Host.content.createFromXaml("<PathGeometry />"));
    } catch (ex) {}
    if (Host.getHost)
        return PathGeometry.CreateNew(Host.getHost());
    return;
}

PathGeometry.prototype =
{    set_figures: function(value)
    {
        /// <summary>Gets or sets the collection of PathFigure objects that describe the path's contents.</summary>
        /// <param name="value" type="PathFigureCollection" integer="False" />
        TypeSafety({"PathFigureCollection" : value});   
        this.element.figures = value.element;
    },

    get_figures: function()
    {
        /// <summary>Gets or sets the collection of PathFigure objects that describe the path's contents.</summary>
        /// <returns type="PathFigureCollection" integer="False" />   
        return Convert.ToPathFigureCollection(this.element.figures);
    },

    set_fillRule: function(value)
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <param name="value" type="FillRule" integer="False" />
        TypeSafety({"FillRule" : value});   
        this.element.fillRule = value.element;
    },

    get_fillRule: function()
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <returns type="FillRule" integer="False" />   
        return Convert.ToFillRule(this.element.fillRule);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

EllipseGeometry = function(EllipseGeometryXamlElement) 
{
        /// <summary>Represents the geometry of a circle or ellipse.</summary>
        /// <param name="EllipseGeometryXamlElement">Non strongly typed Xaml Element</param>
        this.element = EllipseGeometryXamlElement;
}
EllipseGeometry.createFromXaml = function(Host)
{
    /// <returns type="EllipseGeometry" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new EllipseGeometry(Host.content.createFromXaml("<EllipseGeometry />"));
    } catch (ex) {}
    if (Host.getHost)
        return EllipseGeometry.CreateNew(Host.getHost());
    return;
}

EllipseGeometry.prototype =
{    set_center: function(value)
    {
        /// <summary>Gets or sets the center point of the EllipseGeometry.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.center = value.element;
    },

    get_center: function()
    {
        /// <summary>Gets or sets the center point of the EllipseGeometry.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.center);
    },

    set_radiusX: function(value)
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.radiusX = value;
    },

    get_radiusX: function()
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.radiusX);
    },

    set_radiusY: function(value)
    {
        /// <summary>Gets or sets the y-radius value of the EllipseGeometry.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.radiusY = value;
    },

    get_radiusY: function()
    {
        /// <summary>Gets or sets the y-radius value of the EllipseGeometry.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.radiusY);
    },

    set_fillRule: function(value)
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <param name="value" type="FillRule" integer="False" />
        TypeSafety({"FillRule" : value});   
        this.element.fillRule = value.element;
    },

    get_fillRule: function()
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <returns type="FillRule" integer="False" />   
        return Convert.ToFillRule(this.element.fillRule);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

RectangleGeometry = function(RectangleGeometryXamlElement) 
{
        /// <summary>Describes a two-dimensional rectangle.</summary>
        /// <param name="RectangleGeometryXamlElement">Non strongly typed Xaml Element</param>
        this.element = RectangleGeometryXamlElement;
}
RectangleGeometry.createFromXaml = function(Host)
{
    /// <returns type="RectangleGeometry" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new RectangleGeometry(Host.content.createFromXaml("<RectangleGeometry />"));
    } catch (ex) {}
    if (Host.getHost)
        return RectangleGeometry.CreateNew(Host.getHost());
    return;
}

RectangleGeometry.prototype =
{    set_rect: function(value)
    {
        /// <summary>Gets or sets the dimensions of the rectangle.</summary>
        /// <param name="value" type="Rect" integer="False" />
        TypeSafety({"Rect" : value});   
        this.element.rect = value.element;
    },

    get_rect: function()
    {
        /// <summary>Gets or sets the dimensions of the rectangle.</summary>
        /// <returns type="Rect" integer="False" />   
        return Convert.ToRect(this.element.rect);
    },

    set_radiusX: function(value)
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.radiusX = value;
    },

    get_radiusX: function()
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.radiusX);
    },

    set_radiusY: function(value)
    {
        /// <summary>Gets or sets the y-radius value of the EllipseGeometry.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.radiusY = value;
    },

    get_radiusY: function()
    {
        /// <summary>Gets or sets the y-radius value of the EllipseGeometry.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.radiusY);
    },

    set_fillRule: function(value)
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <param name="value" type="FillRule" integer="False" />
        TypeSafety({"FillRule" : value});   
        this.element.fillRule = value.element;
    },

    get_fillRule: function()
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <returns type="FillRule" integer="False" />   
        return Convert.ToFillRule(this.element.fillRule);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

LineGeometry = function(LineGeometryXamlElement) 
{
        /// <summary>Represents the geometry of a line.</summary>
        /// <param name="LineGeometryXamlElement">Non strongly typed Xaml Element</param>
        this.element = LineGeometryXamlElement;
}
LineGeometry.createFromXaml = function(Host)
{
    /// <returns type="LineGeometry" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new LineGeometry(Host.content.createFromXaml("<LineGeometry />"));
    } catch (ex) {}
    if (Host.getHost)
        return LineGeometry.CreateNew(Host.getHost());
    return;
}

LineGeometry.prototype =
{    set_startPoint: function(value)
    {
        /// <summary>Gets or sets the starting two-dimensional coordinates of the linear gradient.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.startPoint = value.element;
    },

    get_startPoint: function()
    {
        /// <summary>Gets or sets the starting two-dimensional coordinates of the linear gradient.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.startPoint);
    },

    set_endPoint: function(value)
    {
        /// <summary>Gets or sets the ending two-dimensional coordinates of the linear gradient.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.endPoint = value.element;
    },

    get_endPoint: function()
    {
        /// <summary>Gets or sets the ending two-dimensional coordinates of the linear gradient.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.endPoint);
    },

    set_fillRule: function(value)
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <param name="value" type="FillRule" integer="False" />
        TypeSafety({"FillRule" : value});   
        this.element.fillRule = value.element;
    },

    get_fillRule: function()
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <returns type="FillRule" integer="False" />   
        return Convert.ToFillRule(this.element.fillRule);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

GeometryCollection = function(GeometryCollectionXamlElement) 
{
        /// <summary>Represents a collection of Geometry objects.</summary>
        /// <param name="GeometryCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = GeometryCollectionXamlElement;
}
GeometryCollection.createFromXaml = function(Host)
{
    /// <returns type="GeometryCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new GeometryCollection(Host.content.createFromXaml("<GeometryCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return GeometryCollection.CreateNew(Host.getHost());
    return;
}

GeometryCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="Geometry" integer="False" />   
        return Convert.ToGeometry(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="Geometry" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"Geometry":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Geometry" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Geometry":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="Geometry" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"Geometry":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="Geometry" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "Geometry":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="Geometry" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Geometry":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="Geometry[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"Geometry[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

GeometryGroup = function(GeometryGroupXamlElement) 
{
        /// <summary>Represents a composite geometry, composed of other Geometry objects.</summary>
        /// <param name="GeometryGroupXamlElement">Non strongly typed Xaml Element</param>
        this.element = GeometryGroupXamlElement;
}
GeometryGroup.createFromXaml = function(Host)
{
    /// <returns type="GeometryGroup" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new GeometryGroup(Host.content.createFromXaml("<GeometryGroup />"));
    } catch (ex) {}
    if (Host.getHost)
        return GeometryGroup.CreateNew(Host.getHost());
    return;
}

GeometryGroup.prototype =
{    set_children: function(value)
    {
        /// <summary>Gets or sets the collection of child elements on the Canvas.</summary>
        /// <param name="value" type="GeometryCollection" integer="False" />
        TypeSafety({"GeometryCollection" : value});   
        this.element.children = value.element;
    },

    get_children: function()
    {
        /// <summary>Gets or sets the collection of child elements on the Canvas.</summary>
        /// <returns type="GeometryCollection" integer="False" />   
        return Convert.ToGeometryCollection(this.element.children);
    },

    set_fillRule: function(value)
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <param name="value" type="FillRule" integer="False" />
        TypeSafety({"FillRule" : value});   
        this.element.fillRule = value.element;
    },

    get_fillRule: function()
    {
        /// <summary>Gets or sets a value that determines how the intersecting areas (PathFigures) contained in this PathGeometry are combined.</summary>
        /// <returns type="FillRule" integer="False" />   
        return Convert.ToFillRule(this.element.fillRule);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

SolidColorBrush = function(SolidColorBrushXamlElement) 
{
        /// <summary>Paints an area with a solid color.</summary>
        /// <param name="SolidColorBrushXamlElement">Non strongly typed Xaml Element</param>
        this.element = SolidColorBrushXamlElement;
}
SolidColorBrush.createFromXaml = function(Host)
{
    /// <returns type="SolidColorBrush" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new SolidColorBrush(Host.content.createFromXaml("<SolidColorBrush />"));
    } catch (ex) {}
    if (Host.getHost)
        return SolidColorBrush.CreateNew(Host.getHost());
    return;
}

SolidColorBrush.prototype =
{    set_color: function(value)
    {
        /// <summary>The color of the associated stroke.</summary>
        /// <param name="value" type="Color" integer="False" />
        TypeSafety({"Color" : value});   
        this.element.color = value.element;
    },

    get_color: function()
    {
        /// <summary>The color of the associated stroke.</summary>
        /// <returns type="Color" integer="False" />   
        return Convert.ToColor(this.element.color);
    },

    set_opacity: function(value)
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.opacity = value;
    },

    get_opacity: function()
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.opacity);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    set_relativeTransform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.relativeTransform = value.element;
    },

    get_relativeTransform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.relativeTransform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

GradientStop = function(GradientStopXamlElement) 
{
        /// <summary>Describes the location and color of a transition point in a gradient.</summary>
        /// <param name="GradientStopXamlElement">Non strongly typed Xaml Element</param>
        this.element = GradientStopXamlElement;
}
GradientStop.createFromXaml = function(Host)
{
    /// <returns type="GradientStop" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new GradientStop(Host.content.createFromXaml("<GradientStop />"));
    } catch (ex) {}
    if (Host.getHost)
        return GradientStop.CreateNew(Host.getHost());
    return;
}

GradientStop.prototype =
{    set_color: function(value)
    {
        /// <summary>The color of the associated stroke.</summary>
        /// <param name="value" type="Color" integer="False" />
        TypeSafety({"Color" : value});   
        this.element.color = value.element;
    },

    get_color: function()
    {
        /// <summary>The color of the associated stroke.</summary>
        /// <returns type="Color" integer="False" />   
        return Convert.ToColor(this.element.color);
    },

    set_offset: function(value)
    {
        /// <summary>Gets the location of the gradient stop within the gradient vector.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.offset = value;
    },

    get_offset: function()
    {
        /// <summary>Gets the location of the gradient stop within the gradient vector.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.offset);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

GradientStopCollection = function(GradientStopCollectionXamlElement) 
{
        /// <summary>Represents a collection of GradientStop objects that can be individually accessed by index.</summary>
        /// <param name="GradientStopCollectionXamlElement">Non strongly typed Xaml Element</param>
        this.element = GradientStopCollectionXamlElement;
}
GradientStopCollection.createFromXaml = function(Host)
{
    /// <returns type="GradientStopCollection" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new GradientStopCollection(Host.content.createFromXaml("<GradientStopCollection />"));
    } catch (ex) {}
    if (Host.getHost)
        return GradientStopCollection.CreateNew(Host.getHost());
    return;
}

GradientStopCollection.prototype =
{    get_isFixedSize: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isFixedSize);
    },

    get_isReadOnly: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isReadOnly);
    },

    getItem: function(Index)
    {
        /// <summary>Indexer</summary>
        /// <param name="Index" type="Number" integer="true" />
        /// <returns type="GradientStop" integer="False" />   
        return Convert.ToGradientStop(this.element.getItem(Index));
    },

    get_count: function()
    {
        /// <summary>Gets the number of items contained in the collection.</summary>
        /// <returns type="Number" integer="True" />   
        return (this.element.count);
    },

    get_isSynchronized: function()
    {
        /// <summary></summary>
        /// <returns type="Boolean" integer="False" />   
        return (this.element.isSynchronized);
    },

    get_syncRoot: function()
    {
        /// <summary></summary>
        /// <returns type="Object" integer="False" />   
        return (this.element.syncRoot);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    add: function(value)
    {
         /// <summary>Adds an object to the end of the collection.</summary>
        /// <param name="value" type="GradientStop" integer="False" >The object to add to the collection.</param>   
        TypeSafety({"GradientStop":value});
        return (this.element.add(value.element));
    },

    clear: function()
    {
         /// <summary>Removes all objects from the collection.</summary>
        TypeSafety({});
        return (this.element.clear());
    },

    contains: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="GradientStop" integer="False" ></param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"GradientStop":value});
        return (this.element.contains(value.element));
    },

    indexOf: function(value)
    {
         /// <summary></summary>
        /// <param name="value" type="GradientStop" integer="False" ></param>   
        /// <returns type="Number" integer="True" />   
        TypeSafety({"GradientStop":value});
        return (this.element.indexOf(value.element));
    },

    insert: function(index, value)
    {
         /// <summary>Inserts an object into the collection at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The index at which the object should be inserted.</param>   
        /// <param name="value" type="GradientStop" integer="False" >The object to insert into the collection.</param>   
        TypeSafety({"Number":index, "GradientStop":value});
        return (this.element.insert(index, value.element));
    },

    remove: function(value)
    {
         /// <summary>Removes the specified object from the collection.</summary>
        /// <param name="value" type="GradientStop" integer="False" >The object to remove from the collection.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"GradientStop":value});
        return (this.element.remove(value.element));
    },

    removeAt: function(index)
    {
         /// <summary>Removes the object at the specified index.</summary>
        /// <param name="index" type="Number" integer="True" >The zero-based index of the object to remove.</param>   
        TypeSafety({"Number":index});
        return (this.element.removeAt(index));
    },

    copyTo: function(array, index)
    {
         /// <summary></summary>
        /// <param name="array" type="GradientStop[]" integer="False" ></param>   
        /// <param name="index" type="Number" integer="True" ></param>   
        TypeSafety({"GradientStop[]":array, "Number":index});
        return (this.element.copyTo(array, index));
    },

    getEnumerator: function()
    {
         /// <summary></summary>
        /// <returns type="IEnumerator`1" integer="False" />   
        TypeSafety({});
        return (this.element.getEnumerator());
    },

    printContents: function()
    {
         /// <summary></summary>
        TypeSafety({});
        return (this.element.printContents());
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

GradientBrush = function(GradientBrushXamlElement) 
{
        /// <summary>Describes a gradient which is composed of gradient stops.</summary>
        /// <param name="GradientBrushXamlElement">Non strongly typed Xaml Element</param>
        this.element = GradientBrushXamlElement;
}
GradientBrush.createFromXaml = function(Host)
{
    /// <returns type="GradientBrush" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new GradientBrush(Host.content.createFromXaml("<GradientBrush />"));
    } catch (ex) {}
    if (Host.getHost)
        return GradientBrush.CreateNew(Host.getHost());
    return;
}

GradientBrush.prototype =
{    set_spreadMethod: function(value)
    {
        /// <summary>Gets or sets the type of spread method that specifies how to draw a gradient that starts or ends inside the bounds of the object to be painted.</summary>
        /// <param name="value" type="GradientSpreadMethod" integer="False" />
        TypeSafety({"GradientSpreadMethod" : value});   
        this.element.spreadMethod = value.element;
    },

    get_spreadMethod: function()
    {
        /// <summary>Gets or sets the type of spread method that specifies how to draw a gradient that starts or ends inside the bounds of the object to be painted.</summary>
        /// <returns type="GradientSpreadMethod" integer="False" />   
        return Convert.ToGradientSpreadMethod(this.element.spreadMethod);
    },

    set_mappingMode: function(value)
    {
        /// <summary>Gets or sets a BrushMappingMode enumeration that specifies whether the gradient brush's positioning coordinates are absolute or relative to the output area.</summary>
        /// <param name="value" type="BrushMappingMode" integer="False" />
        TypeSafety({"BrushMappingMode" : value});   
        this.element.mappingMode = value.element;
    },

    get_mappingMode: function()
    {
        /// <summary>Gets or sets a BrushMappingMode enumeration that specifies whether the gradient brush's positioning coordinates are absolute or relative to the output area.</summary>
        /// <returns type="BrushMappingMode" integer="False" />   
        return Convert.ToBrushMappingMode(this.element.mappingMode);
    },

    set_colorInterpolationMode: function(value)
    {
        /// <summary>Gets or sets a ColorInterpolationMode enumeration that specifies how the gradient's colors are interpolated.</summary>
        /// <param name="value" type="ColorInterpolationMode" integer="False" />
        TypeSafety({"ColorInterpolationMode" : value});   
        this.element.colorInterpolationMode = value.element;
    },

    get_colorInterpolationMode: function()
    {
        /// <summary>Gets or sets a ColorInterpolationMode enumeration that specifies how the gradient's colors are interpolated.</summary>
        /// <returns type="ColorInterpolationMode" integer="False" />   
        return Convert.ToColorInterpolationMode(this.element.colorInterpolationMode);
    },

    set_gradientStops: function(value)
    {
        /// <summary>Gets or sets the brush's gradient stops.</summary>
        /// <param name="value" type="GradientStopCollection" integer="False" />
        TypeSafety({"GradientStopCollection" : value});   
        this.element.gradientStops = value.element;
    },

    get_gradientStops: function()
    {
        /// <summary>Gets or sets the brush's gradient stops.</summary>
        /// <returns type="GradientStopCollection" integer="False" />   
        return Convert.ToGradientStopCollection(this.element.gradientStops);
    },

    set_opacity: function(value)
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.opacity = value;
    },

    get_opacity: function()
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.opacity);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    set_relativeTransform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.relativeTransform = value.element;
    },

    get_relativeTransform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.relativeTransform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

LinearGradientBrush = function(LinearGradientBrushXamlElement) 
{
        /// <summary>Paints an area with a linear gradient.</summary>
        /// <param name="LinearGradientBrushXamlElement">Non strongly typed Xaml Element</param>
        this.element = LinearGradientBrushXamlElement;
}
LinearGradientBrush.createFromXaml = function(Host)
{
    /// <returns type="LinearGradientBrush" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new LinearGradientBrush(Host.content.createFromXaml("<LinearGradientBrush />"));
    } catch (ex) {}
    if (Host.getHost)
        return LinearGradientBrush.CreateNew(Host.getHost());
    return;
}

LinearGradientBrush.prototype =
{    set_startPoint: function(value)
    {
        /// <summary>Gets or sets the starting two-dimensional coordinates of the linear gradient.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.startPoint = value.element;
    },

    get_startPoint: function()
    {
        /// <summary>Gets or sets the starting two-dimensional coordinates of the linear gradient.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.startPoint);
    },

    set_endPoint: function(value)
    {
        /// <summary>Gets or sets the ending two-dimensional coordinates of the linear gradient.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.endPoint = value.element;
    },

    get_endPoint: function()
    {
        /// <summary>Gets or sets the ending two-dimensional coordinates of the linear gradient.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.endPoint);
    },

    set_spreadMethod: function(value)
    {
        /// <summary>Gets or sets the type of spread method that specifies how to draw a gradient that starts or ends inside the bounds of the object to be painted.</summary>
        /// <param name="value" type="GradientSpreadMethod" integer="False" />
        TypeSafety({"GradientSpreadMethod" : value});   
        this.element.spreadMethod = value.element;
    },

    get_spreadMethod: function()
    {
        /// <summary>Gets or sets the type of spread method that specifies how to draw a gradient that starts or ends inside the bounds of the object to be painted.</summary>
        /// <returns type="GradientSpreadMethod" integer="False" />   
        return Convert.ToGradientSpreadMethod(this.element.spreadMethod);
    },

    set_mappingMode: function(value)
    {
        /// <summary>Gets or sets a BrushMappingMode enumeration that specifies whether the gradient brush's positioning coordinates are absolute or relative to the output area.</summary>
        /// <param name="value" type="BrushMappingMode" integer="False" />
        TypeSafety({"BrushMappingMode" : value});   
        this.element.mappingMode = value.element;
    },

    get_mappingMode: function()
    {
        /// <summary>Gets or sets a BrushMappingMode enumeration that specifies whether the gradient brush's positioning coordinates are absolute or relative to the output area.</summary>
        /// <returns type="BrushMappingMode" integer="False" />   
        return Convert.ToBrushMappingMode(this.element.mappingMode);
    },

    set_colorInterpolationMode: function(value)
    {
        /// <summary>Gets or sets a ColorInterpolationMode enumeration that specifies how the gradient's colors are interpolated.</summary>
        /// <param name="value" type="ColorInterpolationMode" integer="False" />
        TypeSafety({"ColorInterpolationMode" : value});   
        this.element.colorInterpolationMode = value.element;
    },

    get_colorInterpolationMode: function()
    {
        /// <summary>Gets or sets a ColorInterpolationMode enumeration that specifies how the gradient's colors are interpolated.</summary>
        /// <returns type="ColorInterpolationMode" integer="False" />   
        return Convert.ToColorInterpolationMode(this.element.colorInterpolationMode);
    },

    set_gradientStops: function(value)
    {
        /// <summary>Gets or sets the brush's gradient stops.</summary>
        /// <param name="value" type="GradientStopCollection" integer="False" />
        TypeSafety({"GradientStopCollection" : value});   
        this.element.gradientStops = value.element;
    },

    get_gradientStops: function()
    {
        /// <summary>Gets or sets the brush's gradient stops.</summary>
        /// <returns type="GradientStopCollection" integer="False" />   
        return Convert.ToGradientStopCollection(this.element.gradientStops);
    },

    set_opacity: function(value)
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.opacity = value;
    },

    get_opacity: function()
    {
        /// <summary>Gets or sets the degree of opacity of a Brush.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.opacity);
    },

    set_transform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.transform = value.element;
    },

    get_transform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.transform);
    },

    set_relativeTransform: function(value)
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <param name="value" type="Transform" integer="False" />
        TypeSafety({"Transform" : value});   
        this.element.relativeTransform = value.element;
    },

    get_relativeTransform: function()
    {
        /// <summary>Gets or sets the transformation that is applied to the brush using relative coordinates.</summary>
        /// <returns type="Transform" integer="False" />   
        return Convert.ToTransform(this.element.relativeTransform);
    },

    get_name: function()
    {
        /// <summary>Gets or sets a unique identification for the object.</summary>
        /// <returns type="String" integer="False" />   
        return (this.element.name);
    },

    setValue: function(property, obj)
    {
         /// <summary>Sets the specified property or event to the specified value.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The name of the dependency property to set.</param>   
        /// <param name="obj" type="T" integer="False" ></param>   
        TypeSafety({"DependencyProperty":property, "T":obj});
        return (this.element.setValue(property.element, obj));
    },

    findName: function(name)
    {
         /// <summary>Gets any object in the Silverlight object hierarchy by referencing the object's x:Name attribute value.</summary>
        /// <param name="name" type="String" integer="False" >The name of the object to get.</param>   
        /// <returns type="DependencyObject" integer="False" />   
        TypeSafety({"String":name});
        return Convert.ToDependencyObject(this.element.findName(name));
    },

    getValue: function(property)
    {
         /// <summary>Gets the value of the specified property.</summary>
        /// <param name="property" type="DependencyProperty" integer="False" >The property to get the value of.</param>   
        /// <returns type="Object" integer="False" />   
        TypeSafety({"DependencyProperty":property});
        return (this.element.getValue(property.element));
    },

    getType: function()
    {
         /// <summary></summary>
        /// <returns type="Type" integer="False" />   
        TypeSafety({});
        return (this.element.getType());
    },

    toString: function()
    {
         /// <summary></summary>
        /// <returns type="String" integer="False" />   
        TypeSafety({});
        return (this.element.toString());
    },

    equals: function(obj)
    {
         /// <summary>Checks for equality of an object to the current object.</summary>
        /// <param name="obj" type="Object" integer="False" >The object to compare to the calling object.</param>   
        /// <returns type="Boolean" integer="False" />   
        TypeSafety({"Object":obj});
        return (this.element.equals(obj));
    },

    getHashCode: function()
    {
         /// <summary></summary>
        /// <returns type="Number" integer="True" />   
        TypeSafety({});
        return (this.element.getHashCode());
    }
}

RadialGradientBrush = function(RadialGradientBrushXamlElement) 
{
        /// <summary>Paints an area with a radial gradient. A focal point defines the beginning of the gradient, and a circle defines the end point of the gradient.</summary>
        /// <param name="RadialGradientBrushXamlElement">Non strongly typed Xaml Element</param>
        this.element = RadialGradientBrushXamlElement;
}
RadialGradientBrush.createFromXaml = function(Host)
{
    /// <returns type="RadialGradientBrush" />
    if (!Host)
        return;
    try { 
    if (Host.content)
        return new RadialGradientBrush(Host.content.createFromXaml("<RadialGradientBrush />"));
    } catch (ex) {}
    if (Host.getHost)
        return RadialGradientBrush.CreateNew(Host.getHost());
    return;
}

RadialGradientBrush.prototype =
{    set_center: function(value)
    {
        /// <summary>Gets or sets the center point of the EllipseGeometry.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.center = value.element;
    },

    get_center: function()
    {
        /// <summary>Gets or sets the center point of the EllipseGeometry.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.center);
    },

    set_gradientOrigin: function(value)
    {
        /// <summary>Gets or sets the location of the two-dimensional focal point that defines the beginning of the gradient.</summary>
        /// <param name="value" type="Point" integer="False" />
        TypeSafety({"Point" : value});   
        this.element.gradientOrigin = value.element;
    },

    get_gradientOrigin: function()
    {
        /// <summary>Gets or sets the location of the two-dimensional focal point that defines the beginning of the gradient.</summary>
        /// <returns type="Point" integer="False" />   
        return Convert.ToPoint(this.element.gradientOrigin);
    },

    set_radiusX: function(value)
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.radiusX = value;
    },

    get_radiusX: function()
    {
        /// <summary>Gets or sets the x-radius value of the EllipseGeometry.</summary>
        /// <returns type="Double" integer="False" />   
        return (this.element.radiusX);
    },

    set_radiusY: function(value)
    {
        /// <summary>Gets or sets the y-radius value of the EllipseGeometry.</summary>
        /// <param name="value" type="Double" integer="False" />
        TypeSafety({"Double" : value});   
        this.element.radiusY = value;
    },

    get_radiusY: function()
    {
        /// <su