Example #1
1
        // Code compiled into PresentationFramework.dll

        // Initialize known object types
        internal static object CreateKnownElement(KnownElements knownElement) 
        {
            object o = null; 
            switch (knownElement) 
            {
                case KnownElements.AccessText: o = new System.Windows.Controls.AccessText();   break; 
                case KnownElements.AdornedElementPlaceholder: o = new System.Windows.Controls.AdornedElementPlaceholder();   break;
                case KnownElements.AdornerDecorator: o = new System.Windows.Documents.AdornerDecorator();   break;
                case KnownElements.AmbientLight: o = new System.Windows.Media.Media3D.AmbientLight();   break;
                case KnownElements.Application: o = new System.Windows.Application();   break; 
                case KnownElements.ArcSegment: o = new System.Windows.Media.ArcSegment();   break;
                case KnownElements.ArrayExtension: o = new System.Windows.Markup.ArrayExtension();   break; 
                case KnownElements.AxisAngleRotation3D: o = new System.Windows.Media.Media3D.AxisAngleRotation3D();   break; 
                case KnownElements.BeginStoryboard: o = new System.Windows.Media.Animation.BeginStoryboard();   break;
                case KnownElements.BevelBitmapEffect: o = new System.Windows.Media.Effects.BevelBitmapEffect();   break; 
                case KnownElements.BezierSegment: o = new System.Windows.Media.BezierSegment();   break;
                case KnownElements.Binding: o = new System.Windows.Data.Binding();   break;
                case KnownElements.BitmapEffectCollection: o = new System.Windows.Media.Effects.BitmapEffectCollection();   break;
                case KnownElements.BitmapEffectGroup: o = new System.Windows.Media.Effects.BitmapEffectGroup();   break; 
                case KnownElements.BitmapEffectInput: o = new System.Windows.Media.Effects.BitmapEffectInput();   break;
                case KnownElements.BitmapImage: o = new System.Windows.Media.Imaging.BitmapImage();   break; 
                case KnownElements.BlockUIContainer: o = new System.Windows.Documents.BlockUIContainer();   break; 
                case KnownElements.BlurBitmapEffect: o = new System.Windows.Media.Effects.BlurBitmapEffect();   break;
                case KnownElements.BmpBitmapEncoder: o = new System.Windows.Media.Imaging.BmpBitmapEncoder();   break; 
                case KnownElements.Bold: o = new System.Windows.Documents.Bold();   break;
                case KnownElements.BoolIListConverter: o = new System.Windows.Media.Converters.BoolIListConverter();   break;
                case KnownElements.BooleanAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.BooleanAnimationUsingKeyFrames();   break;
                case KnownElements.BooleanConverter: o = new System.ComponentModel.BooleanConverter();   break; 
                case KnownElements.BooleanKeyFrameCollection: o = new System.Windows.Media.Animation.BooleanKeyFrameCollection();   break;
                case KnownElements.BooleanToVisibilityConverter: o = new System.Windows.Controls.BooleanToVisibilityConverter();   break; 
                case KnownElements.Border: o = new System.Windows.Controls.Border();   break; 
                case KnownElements.BorderGapMaskConverter: o = new System.Windows.Controls.BorderGapMaskConverter();   break;
                case KnownElements.BrushConverter: o = new System.Windows.Media.BrushConverter();   break; 
                case KnownElements.BulletDecorator: o = new System.Windows.Controls.Primitives.BulletDecorator();   break;
                case KnownElements.Button: o = new System.Windows.Controls.Button();   break;
                case KnownElements.ByteAnimation: o = new System.Windows.Media.Animation.ByteAnimation();   break;
                case KnownElements.ByteAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.ByteAnimationUsingKeyFrames();   break; 
                case KnownElements.ByteConverter: o = new System.ComponentModel.ByteConverter();   break;
                case KnownElements.ByteKeyFrameCollection: o = new System.Windows.Media.Animation.ByteKeyFrameCollection();   break; 
                case KnownElements.Canvas: o = new System.Windows.Controls.Canvas();   break; 
                case KnownElements.CharAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.CharAnimationUsingKeyFrames();   break;
                case KnownElements.CharConverter: o = new System.ComponentModel.CharConverter();   break; 
                case KnownElements.CharIListConverter: o = new System.Windows.Media.Converters.CharIListConverter();   break;
                case KnownElements.CharKeyFrameCollection: o = new System.Windows.Media.Animation.CharKeyFrameCollection();   break;
                case KnownElements.CheckBox: o = new System.Windows.Controls.CheckBox();   break;
                case KnownElements.CollectionContainer: o = new System.Windows.Data.CollectionContainer();   break; 
                case KnownElements.CollectionViewSource: o = new System.Windows.Data.CollectionViewSource();   break;
                case KnownElements.Color: o = new System.Windows.Media.Color();   break; 
                case KnownElements.ColorAnimation: o = new System.Windows.Media.Animation.ColorAnimation();   break; 
                case KnownElements.ColorAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.ColorAnimationUsingKeyFrames();   break;
                case KnownElements.ColorConvertedBitmap: o = new System.Windows.Media.Imaging.ColorConvertedBitmap();   break; 
                case KnownElements.ColorConvertedBitmapExtension: o = new System.Windows.ColorConvertedBitmapExtension();   break;
                case KnownElements.ColorConverter: o = new System.Windows.Media.ColorConverter();   break;
                case KnownElements.ColorKeyFrameCollection: o = new System.Windows.Media.Animation.ColorKeyFrameCollection();   break;
                case KnownElements.ColumnDefinition: o = new System.Windows.Controls.ColumnDefinition();   break; 
                case KnownElements.CombinedGeometry: o = new System.Windows.Media.CombinedGeometry();   break;
                case KnownElements.ComboBox: o = new System.Windows.Controls.ComboBox();   break; 
                case KnownElements.ComboBoxItem: o = new System.Windows.Controls.ComboBoxItem();   break; 
                case KnownElements.CommandConverter: o = new System.Windows.Input.CommandConverter();   break;
                case KnownElements.ComponentResourceKey: o = new System.Windows.ComponentResourceKey();   break; 
                case KnownElements.ComponentResourceKeyConverter: o = new System.Windows.Markup.ComponentResourceKeyConverter();   break;
                case KnownElements.Condition: o = new System.Windows.Condition();   break;
                case KnownElements.ContainerVisual: o = new System.Windows.Media.ContainerVisual();   break;
                case KnownElements.ContentControl: o = new System.Windows.Controls.ContentControl();   break; 
                case KnownElements.ContentElement: o = new System.Windows.ContentElement();   break;
                case KnownElements.ContentPresenter: o = new System.Windows.Controls.ContentPresenter();   break; 
                case KnownElements.ContextMenu: o = new System.Windows.Controls.ContextMenu();   break; 
                case KnownElements.Control: o = new System.Windows.Controls.Control();   break;
                case KnownElements.ControlTemplate: o = new System.Windows.Controls.ControlTemplate();   break; 
                case KnownElements.CornerRadius: o = new System.Windows.CornerRadius();   break;
                case KnownElements.CornerRadiusConverter: o = new System.Windows.CornerRadiusConverter();   break;
                case KnownElements.CroppedBitmap: o = new System.Windows.Media.Imaging.CroppedBitmap();   break;
                case KnownElements.CultureInfoConverter: o = new System.ComponentModel.CultureInfoConverter();   break; 
                case KnownElements.CultureInfoIetfLanguageTagConverter: o = new System.Windows.CultureInfoIetfLanguageTagConverter();   break;
                case KnownElements.CursorConverter: o = new System.Windows.Input.CursorConverter();   break; 
                case KnownElements.DashStyle: o = new System.Windows.Media.DashStyle();   break; 
                case KnownElements.DataTemplate: o = new System.Windows.DataTemplate();   break;
                case KnownElements.DataTemplateKey: o = new System.Windows.DataTemplateKey();   break; 
                case KnownElements.DataTrigger: o = new System.Windows.DataTrigger();   break;
                case KnownElements.DateTimeConverter: o = new System.ComponentModel.DateTimeConverter();   break;
                case KnownElements.DateTimeConverter2: o = new System.Windows.Markup.DateTimeConverter2();   break;
                case KnownElements.DecimalAnimation: o = new System.Windows.Media.Animation.DecimalAnimation();   break; 
                case KnownElements.DecimalAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.DecimalAnimationUsingKeyFrames();   break;
                case KnownElements.DecimalConverter: o = new System.ComponentModel.DecimalConverter();   break; 
                case KnownElements.DecimalKeyFrameCollection: o = new System.Windows.Media.Animation.DecimalKeyFrameCollection();   break; 
                case KnownElements.Decorator: o = new System.Windows.Controls.Decorator();   break;
                case KnownElements.DependencyObject: o = new System.Windows.DependencyObject();   break; 
                case KnownElements.DependencyPropertyConverter: o = new System.Windows.Markup.DependencyPropertyConverter();   break;
                case KnownElements.DialogResultConverter: o = new System.Windows.DialogResultConverter();   break;
                case KnownElements.DiffuseMaterial: o = new System.Windows.Media.Media3D.DiffuseMaterial();   break;
                case KnownElements.DirectionalLight: o = new System.Windows.Media.Media3D.DirectionalLight();   break; 
                case KnownElements.DiscreteBooleanKeyFrame: o = new System.Windows.Media.Animation.DiscreteBooleanKeyFrame();   break;
                case KnownElements.DiscreteByteKeyFrame: o = new System.Windows.Media.Animation.DiscreteByteKeyFrame();   break; 
                case KnownElements.DiscreteCharKeyFrame: o = new System.Windows.Media.Animation.DiscreteCharKeyFrame();   break; 
                case KnownElements.DiscreteColorKeyFrame: o = new System.Windows.Media.Animation.DiscreteColorKeyFrame();   break;
                case KnownElements.DiscreteDecimalKeyFrame: o = new System.Windows.Media.Animation.DiscreteDecimalKeyFrame();   break; 
                case KnownElements.DiscreteDoubleKeyFrame: o = new System.Windows.Media.Animation.DiscreteDoubleKeyFrame();   break;
                case KnownElements.DiscreteInt16KeyFrame: o = new System.Windows.Media.Animation.DiscreteInt16KeyFrame();   break;
                case KnownElements.DiscreteInt32KeyFrame: o = new System.Windows.Media.Animation.DiscreteInt32KeyFrame();   break;
                case KnownElements.DiscreteInt64KeyFrame: o = new System.Windows.Media.Animation.DiscreteInt64KeyFrame();   break; 
                case KnownElements.DiscreteMatrixKeyFrame: o = new System.Windows.Media.Animation.DiscreteMatrixKeyFrame();   break;
                case KnownElements.DiscreteObjectKeyFrame: o = new System.Windows.Media.Animation.DiscreteObjectKeyFrame();   break; 
                case KnownElements.DiscretePoint3DKeyFrame: o = new System.Windows.Media.Animation.DiscretePoint3DKeyFrame();   break; 
                case KnownElements.DiscretePointKeyFrame: o = new System.Windows.Media.Animation.DiscretePointKeyFrame();   break;
                case KnownElements.DiscreteQuaternionKeyFrame: o = new System.Windows.Media.Animation.DiscreteQuaternionKeyFrame();   break; 
                case KnownElements.DiscreteRectKeyFrame: o = new System.Windows.Media.Animation.DiscreteRectKeyFrame();   break;
                case KnownElements.DiscreteRotation3DKeyFrame: o = new System.Windows.Media.Animation.DiscreteRotation3DKeyFrame();   break;
                case KnownElements.DiscreteSingleKeyFrame: o = new System.Windows.Media.Animation.DiscreteSingleKeyFrame();   break;
                case KnownElements.DiscreteSizeKeyFrame: o = new System.Windows.Media.Animation.DiscreteSizeKeyFrame();   break; 
                case KnownElements.DiscreteStringKeyFrame: o = new System.Windows.Media.Animation.DiscreteStringKeyFrame();   break;
                case KnownElements.DiscreteThicknessKeyFrame: o = new System.Windows.Media.Animation.DiscreteThicknessKeyFrame();   break; 
                case KnownElements.DiscreteVector3DKeyFrame: o = new System.Windows.Media.Animation.DiscreteVector3DKeyFrame();   break; 
                case KnownElements.DiscreteVectorKeyFrame: o = new System.Windows.Media.Animation.DiscreteVectorKeyFrame();   break;
                case KnownElements.DockPanel: o = new System.Windows.Controls.DockPanel();   break; 
                case KnownElements.DocumentPageView: o = new System.Windows.Controls.Primitives.DocumentPageView();   break;
                case KnownElements.DocumentReference: o = new System.Windows.Documents.DocumentReference();   break;
                case KnownElements.DocumentViewer: o = new System.Windows.Controls.DocumentViewer();   break;
                case KnownElements.DoubleAnimation: o = new System.Windows.Media.Animation.DoubleAnimation();   break; 
                case KnownElements.DoubleAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.DoubleAnimationUsingKeyFrames();   break;
                case KnownElements.DoubleAnimationUsingPath: o = new System.Windows.Media.Animation.DoubleAnimationUsingPath();   break; 
                case KnownElements.DoubleCollection: o = new System.Windows.Media.DoubleCollection();   break; 
                case KnownElements.DoubleCollectionConverter: o = new System.Windows.Media.DoubleCollectionConverter();   break;
                case KnownElements.DoubleConverter: o = new System.ComponentModel.DoubleConverter();   break; 
                case KnownElements.DoubleIListConverter: o = new System.Windows.Media.Converters.DoubleIListConverter();   break;
                case KnownElements.DoubleKeyFrameCollection: o = new System.Windows.Media.Animation.DoubleKeyFrameCollection();   break;
                case KnownElements.DrawingBrush: o = new System.Windows.Media.DrawingBrush();   break;
                case KnownElements.DrawingCollection: o = new System.Windows.Media.DrawingCollection();   break; 
                case KnownElements.DrawingGroup: o = new System.Windows.Media.DrawingGroup();   break;
                case KnownElements.DrawingImage: o = new System.Windows.Media.DrawingImage();   break; 
                case KnownElements.DrawingVisual: o = new System.Windows.Media.DrawingVisual();   break; 
                case KnownElements.DropShadowBitmapEffect: o = new System.Windows.Media.Effects.DropShadowBitmapEffect();   break;
                case KnownElements.Duration: o = new System.Windows.Duration();   break; 
                case KnownElements.DurationConverter: o = new System.Windows.DurationConverter();   break;
                case KnownElements.DynamicResourceExtension: o = new System.Windows.DynamicResourceExtension();   break;
                case KnownElements.DynamicResourceExtensionConverter: o = new System.Windows.DynamicResourceExtensionConverter();   break;
                case KnownElements.Ellipse: o = new System.Windows.Shapes.Ellipse();   break; 
                case KnownElements.EllipseGeometry: o = new System.Windows.Media.EllipseGeometry();   break;
                case KnownElements.EmbossBitmapEffect: o = new System.Windows.Media.Effects.EmbossBitmapEffect();   break; 
                case KnownElements.EmissiveMaterial: o = new System.Windows.Media.Media3D.EmissiveMaterial();   break; 
                case KnownElements.EventSetter: o = new System.Windows.EventSetter();   break;
                case KnownElements.EventTrigger: o = new System.Windows.EventTrigger();   break; 
                case KnownElements.Expander: o = new System.Windows.Controls.Expander();   break;
                case KnownElements.ExpressionConverter: o = new System.Windows.ExpressionConverter();   break;
                case KnownElements.Figure: o = new System.Windows.Documents.Figure();   break;
                case KnownElements.FigureLength: o = new System.Windows.FigureLength();   break; 
                case KnownElements.FigureLengthConverter: o = new System.Windows.FigureLengthConverter();   break;
                case KnownElements.FixedDocument: o = new System.Windows.Documents.FixedDocument();   break; 
                case KnownElements.FixedDocumentSequence: o = new System.Windows.Documents.FixedDocumentSequence();   break; 
                case KnownElements.FixedPage: o = new System.Windows.Documents.FixedPage();   break;
                case KnownElements.Floater: o = new System.Windows.Documents.Floater();   break; 
                case KnownElements.FlowDocument: o = new System.Windows.Documents.FlowDocument();   break;
                case KnownElements.FlowDocumentPageViewer: o = new System.Windows.Controls.FlowDocumentPageViewer();   break;
                case KnownElements.FlowDocumentReader: o = new System.Windows.Controls.FlowDocumentReader();   break;
                case KnownElements.FlowDocumentScrollViewer: o = new System.Windows.Controls.FlowDocumentScrollViewer();   break; 
                case KnownElements.FontFamily: o = new System.Windows.Media.FontFamily();   break;
                case KnownElements.FontFamilyConverter: o = new System.Windows.Media.FontFamilyConverter();   break; 
                case KnownElements.FontSizeConverter: o = new System.Windows.FontSizeConverter();   break; 
                case KnownElements.FontStretch: o = new System.Windows.FontStretch();   break;
                case KnownElements.FontStretchConverter: o = new System.Windows.FontStretchConverter();   break; 
                case KnownElements.FontStyle: o = new System.Windows.FontStyle();   break;
                case KnownElements.FontStyleConverter: o = new System.Windows.FontStyleConverter();   break;
                case KnownElements.FontWeight: o = new System.Windows.FontWeight();   break;
                case KnownElements.FontWeightConverter: o = new System.Windows.FontWeightConverter();   break; 
                case KnownElements.FormatConvertedBitmap: o = new System.Windows.Media.Imaging.FormatConvertedBitmap();   break;
                case KnownElements.Frame: o = new System.Windows.Controls.Frame();   break; 
                case KnownElements.FrameworkContentElement: o = new System.Windows.FrameworkContentElement();   break; 
                case KnownElements.FrameworkElement: o = new System.Windows.FrameworkElement();   break;
                case KnownElements.FrameworkElementFactory: o = new System.Windows.FrameworkElementFactory();   break; 
                case KnownElements.FrameworkPropertyMetadata: o = new System.Windows.FrameworkPropertyMetadata();   break;
                case KnownElements.GeneralTransformCollection: o = new System.Windows.Media.GeneralTransformCollection();   break;
                case KnownElements.GeneralTransformGroup: o = new System.Windows.Media.GeneralTransformGroup();   break;
                case KnownElements.GeometryCollection: o = new System.Windows.Media.GeometryCollection();   break; 
                case KnownElements.GeometryConverter: o = new System.Windows.Media.GeometryConverter();   break;
                case KnownElements.GeometryDrawing: o = new System.Windows.Media.GeometryDrawing();   break; 
                case KnownElements.GeometryGroup: o = new System.Windows.Media.GeometryGroup();   break; 
                case KnownElements.GeometryModel3D: o = new System.Windows.Media.Media3D.GeometryModel3D();   break;
                case KnownElements.GestureRecognizer: o = new System.Windows.Ink.GestureRecognizer();   break; 
                case KnownElements.GifBitmapEncoder: o = new System.Windows.Media.Imaging.GifBitmapEncoder();   break;
                case KnownElements.GlyphRun: o = new System.Windows.Media.GlyphRun();   break;
                case KnownElements.GlyphRunDrawing: o = new System.Windows.Media.GlyphRunDrawing();   break;
                case KnownElements.GlyphTypeface: o = new System.Windows.Media.GlyphTypeface();   break; 
                case KnownElements.Glyphs: o = new System.Windows.Documents.Glyphs();   break;
                case KnownElements.GradientStop: o = new System.Windows.Media.GradientStop();   break; 
                case KnownElements.GradientStopCollection: o = new System.Windows.Media.GradientStopCollection();   break; 
                case KnownElements.Grid: o = new System.Windows.Controls.Grid();   break;
                case KnownElements.GridLength: o = new System.Windows.GridLength();   break; 
                case KnownElements.GridLengthConverter: o = new System.Windows.GridLengthConverter();   break;
                case KnownElements.GridSplitter: o = new System.Windows.Controls.GridSplitter();   break;
                case KnownElements.GridView: o = new System.Windows.Controls.GridView();   break;
                case KnownElements.GridViewColumn: o = new System.Windows.Controls.GridViewColumn();   break; 
                case KnownElements.GridViewColumnHeader: o = new System.Windows.Controls.GridViewColumnHeader();   break;
                case KnownElements.GridViewHeaderRowPresenter: o = new System.Windows.Controls.GridViewHeaderRowPresenter();   break; 
                case KnownElements.GridViewRowPresenter: o = new System.Windows.Controls.GridViewRowPresenter();   break; 
                case KnownElements.GroupBox: o = new System.Windows.Controls.GroupBox();   break;
                case KnownElements.GroupItem: o = new System.Windows.Controls.GroupItem();   break; 
                case KnownElements.GuidConverter: o = new System.ComponentModel.GuidConverter();   break;
                case KnownElements.GuidelineSet: o = new System.Windows.Media.GuidelineSet();   break;
                case KnownElements.HeaderedContentControl: o = new System.Windows.Controls.HeaderedContentControl();   break;
                case KnownElements.HeaderedItemsControl: o = new System.Windows.Controls.HeaderedItemsControl();   break; 
                case KnownElements.HierarchicalDataTemplate: o = new System.Windows.HierarchicalDataTemplate();   break;
                case KnownElements.HostVisual: o = new System.Windows.Media.HostVisual();   break; 
                case KnownElements.Hyperlink: o = new System.Windows.Documents.Hyperlink();   break; 
                case KnownElements.Image: o = new System.Windows.Controls.Image();   break;
                case KnownElements.ImageBrush: o = new System.Windows.Media.ImageBrush();   break; 
                case KnownElements.ImageDrawing: o = new System.Windows.Media.ImageDrawing();   break;
                case KnownElements.ImageSourceConverter: o = new System.Windows.Media.ImageSourceConverter();   break;
                case KnownElements.InkCanvas: o = new System.Windows.Controls.InkCanvas();   break;
                case KnownElements.InkPresenter: o = new System.Windows.Controls.InkPresenter();   break; 
                case KnownElements.InlineUIContainer: o = new System.Windows.Documents.InlineUIContainer();   break;
                case KnownElements.InputScope: o = new System.Windows.Input.InputScope();   break; 
                case KnownElements.InputScopeConverter: o = new System.Windows.Input.InputScopeConverter();   break; 
                case KnownElements.InputScopeName: o = new System.Windows.Input.InputScopeName();   break;
                case KnownElements.InputScopeNameConverter: o = new System.Windows.Input.InputScopeNameConverter();   break; 
                case KnownElements.Int16Animation: o = new System.Windows.Media.Animation.Int16Animation();   break;
                case KnownElements.Int16AnimationUsingKeyFrames: o = new System.Windows.Media.Animation.Int16AnimationUsingKeyFrames();   break;
                case KnownElements.Int16Converter: o = new System.ComponentModel.Int16Converter();   break;
                case KnownElements.Int16KeyFrameCollection: o = new System.Windows.Media.Animation.Int16KeyFrameCollection();   break; 
                case KnownElements.Int32Animation: o = new System.Windows.Media.Animation.Int32Animation();   break;
                case KnownElements.Int32AnimationUsingKeyFrames: o = new System.Windows.Media.Animation.Int32AnimationUsingKeyFrames();   break; 
                case KnownElements.Int32Collection: o = new System.Windows.Media.Int32Collection();   break; 
                case KnownElements.Int32CollectionConverter: o = new System.Windows.Media.Int32CollectionConverter();   break;
                case KnownElements.Int32Converter: o = new System.ComponentModel.Int32Converter();   break; 
                case KnownElements.Int32KeyFrameCollection: o = new System.Windows.Media.Animation.Int32KeyFrameCollection();   break;
                case KnownElements.Int32Rect: o = new System.Windows.Int32Rect();   break;
                case KnownElements.Int32RectConverter: o = new System.Windows.Int32RectConverter();   break;
                case KnownElements.Int64Animation: o = new System.Windows.Media.Animation.Int64Animation();   break; 
                case KnownElements.Int64AnimationUsingKeyFrames: o = new System.Windows.Media.Animation.Int64AnimationUsingKeyFrames();   break;
                case KnownElements.Int64Converter: o = new System.ComponentModel.Int64Converter();   break; 
                case KnownElements.Int64KeyFrameCollection: o = new System.Windows.Media.Animation.Int64KeyFrameCollection();   break; 
                case KnownElements.Italic: o = new System.Windows.Documents.Italic();   break;
                case KnownElements.ItemsControl: o = new System.Windows.Controls.ItemsControl();   break; 
                case KnownElements.ItemsPanelTemplate: o = new System.Windows.Controls.ItemsPanelTemplate();   break;
                case KnownElements.ItemsPresenter: o = new System.Windows.Controls.ItemsPresenter();   break;
                case KnownElements.JournalEntryListConverter: o = new System.Windows.Navigation.JournalEntryListConverter();   break;
                case KnownElements.JournalEntryUnifiedViewConverter: o = new System.Windows.Navigation.JournalEntryUnifiedViewConverter();   break; 
                case KnownElements.JpegBitmapEncoder: o = new System.Windows.Media.Imaging.JpegBitmapEncoder();   break;
                case KnownElements.KeyBinding: o = new System.Windows.Input.KeyBinding();   break; 
                case KnownElements.KeyConverter: o = new System.Windows.Input.KeyConverter();   break; 
                case KnownElements.KeyGestureConverter: o = new System.Windows.Input.KeyGestureConverter();   break;
                case KnownElements.KeySpline: o = new System.Windows.Media.Animation.KeySpline();   break; 
                case KnownElements.KeySplineConverter: o = new System.Windows.KeySplineConverter();   break;
                case KnownElements.KeyTime: o = new System.Windows.Media.Animation.KeyTime();   break;
                case KnownElements.KeyTimeConverter: o = new System.Windows.KeyTimeConverter();   break;
                case KnownElements.Label: o = new System.Windows.Controls.Label();   break; 
                case KnownElements.LengthConverter: o = new System.Windows.LengthConverter();   break;
                case KnownElements.Line: o = new System.Windows.Shapes.Line();   break; 
                case KnownElements.LineBreak: o = new System.Windows.Documents.LineBreak();   break; 
                case KnownElements.LineGeometry: o = new System.Windows.Media.LineGeometry();   break;
                case KnownElements.LineSegment: o = new System.Windows.Media.LineSegment();   break; 
                case KnownElements.LinearByteKeyFrame: o = new System.Windows.Media.Animation.LinearByteKeyFrame();   break;
                case KnownElements.LinearColorKeyFrame: o = new System.Windows.Media.Animation.LinearColorKeyFrame();   break;
                case KnownElements.LinearDecimalKeyFrame: o = new System.Windows.Media.Animation.LinearDecimalKeyFrame();   break;
                case KnownElements.LinearDoubleKeyFrame: o = new System.Windows.Media.Animation.LinearDoubleKeyFrame();   break; 
                case KnownElements.LinearGradientBrush: o = new System.Windows.Media.LinearGradientBrush();   break;
                case KnownElements.LinearInt16KeyFrame: o = new System.Windows.Media.Animation.LinearInt16KeyFrame();   break; 
                case KnownElements.LinearInt32KeyFrame: o = new System.Windows.Media.Animation.LinearInt32KeyFrame();   break; 
                case KnownElements.LinearInt64KeyFrame: o = new System.Windows.Media.Animation.LinearInt64KeyFrame();   break;
                case KnownElements.LinearPoint3DKeyFrame: o = new System.Windows.Media.Animation.LinearPoint3DKeyFrame();   break; 
                case KnownElements.LinearPointKeyFrame: o = new System.Windows.Media.Animation.LinearPointKeyFrame();   break;
                case KnownElements.LinearQuaternionKeyFrame: o = new System.Windows.Media.Animation.LinearQuaternionKeyFrame();   break;
                case KnownElements.LinearRectKeyFrame: o = new System.Windows.Media.Animation.LinearRectKeyFrame();   break;
                case KnownElements.LinearRotation3DKeyFrame: o = new System.Windows.Media.Animation.LinearRotation3DKeyFrame();   break; 
                case KnownElements.LinearSingleKeyFrame: o = new System.Windows.Media.Animation.LinearSingleKeyFrame();   break;
                case KnownElements.LinearSizeKeyFrame: o = new System.Windows.Media.Animation.LinearSizeKeyFrame();   break; 
                case KnownElements.LinearThicknessKeyFrame: o = new System.Windows.Media.Animation.LinearThicknessKeyFrame();   break; 
                case KnownElements.LinearVector3DKeyFrame: o = new System.Windows.Media.Animation.LinearVector3DKeyFrame();   break;
                case KnownElements.LinearVectorKeyFrame: o = new System.Windows.Media.Animation.LinearVectorKeyFrame();   break; 
                case KnownElements.List: o = new System.Windows.Documents.List();   break;
                case KnownElements.ListBox: o = new System.Windows.Controls.ListBox();   break;
                case KnownElements.ListBoxItem: o = new System.Windows.Controls.ListBoxItem();   break;
                case KnownElements.ListItem: o = new System.Windows.Documents.ListItem();   break; 
                case KnownElements.ListView: o = new System.Windows.Controls.ListView();   break;
                case KnownElements.ListViewItem: o = new System.Windows.Controls.ListViewItem();   break; 
                case KnownElements.MaterialCollection: o = new System.Windows.Media.Media3D.MaterialCollection();   break; 
                case KnownElements.MaterialGroup: o = new System.Windows.Media.Media3D.MaterialGroup();   break;
                case KnownElements.Matrix: o = new System.Windows.Media.Matrix();   break; 
                case KnownElements.Matrix3D: o = new System.Windows.Media.Media3D.Matrix3D();   break;
                case KnownElements.Matrix3DConverter: o = new System.Windows.Media.Media3D.Matrix3DConverter();   break;
                case KnownElements.MatrixAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.MatrixAnimationUsingKeyFrames();   break;
                case KnownElements.MatrixAnimationUsingPath: o = new System.Windows.Media.Animation.MatrixAnimationUsingPath();   break; 
                case KnownElements.MatrixCamera: o = new System.Windows.Media.Media3D.MatrixCamera();   break;
                case KnownElements.MatrixConverter: o = new System.Windows.Media.MatrixConverter();   break; 
                case KnownElements.MatrixKeyFrameCollection: o = new System.Windows.Media.Animation.MatrixKeyFrameCollection();   break; 
                case KnownElements.MatrixTransform: o = new System.Windows.Media.MatrixTransform();   break;
                case KnownElements.MatrixTransform3D: o = new System.Windows.Media.Media3D.MatrixTransform3D();   break; 
                case KnownElements.MediaElement: o = new System.Windows.Controls.MediaElement();   break;
                case KnownElements.MediaPlayer: o = new System.Windows.Media.MediaPlayer();   break;
                case KnownElements.MediaTimeline: o = new System.Windows.Media.MediaTimeline();   break;
                case KnownElements.Menu: o = new System.Windows.Controls.Menu();   break; 
                case KnownElements.MenuItem: o = new System.Windows.Controls.MenuItem();   break;
                case KnownElements.MenuScrollingVisibilityConverter: o = new System.Windows.Controls.MenuScrollingVisibilityConverter();   break; 
                case KnownElements.MeshGeometry3D: o = new System.Windows.Media.Media3D.MeshGeometry3D();   break; 
                case KnownElements.Model3DCollection: o = new System.Windows.Media.Media3D.Model3DCollection();   break;
                case KnownElements.Model3DGroup: o = new System.Windows.Media.Media3D.Model3DGroup();   break; 
                case KnownElements.ModelVisual3D: o = new System.Windows.Media.Media3D.ModelVisual3D();   break;
                case KnownElements.ModifierKeysConverter: o = new System.Windows.Input.ModifierKeysConverter();   break;
                case KnownElements.MouseActionConverter: o = new System.Windows.Input.MouseActionConverter();   break;
                case KnownElements.MouseBinding: o = new System.Windows.Input.MouseBinding();   break; 
                case KnownElements.MouseGesture: o = new System.Windows.Input.MouseGesture();   break;
                case KnownElements.MouseGestureConverter: o = new System.Windows.Input.MouseGestureConverter();   break; 
                case KnownElements.MultiBinding: o = new System.Windows.Data.MultiBinding();   break; 
                case KnownElements.MultiDataTrigger: o = new System.Windows.MultiDataTrigger();   break;
                case KnownElements.MultiTrigger: o = new System.Windows.MultiTrigger();   break; 
                case KnownElements.NameScope: o = new System.Windows.NameScope();   break;
                case KnownElements.NavigationWindow: o = new System.Windows.Navigation.NavigationWindow();   break;
                case KnownElements.NullExtension: o = new System.Windows.Markup.NullExtension();   break;
                case KnownElements.NullableBoolConverter: o = new System.Windows.NullableBoolConverter();   break; 
                case KnownElements.NumberSubstitution: o = new System.Windows.Media.NumberSubstitution();   break;
                case KnownElements.Object: o = new System.Object();   break; 
                case KnownElements.ObjectAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames();   break; 
                case KnownElements.ObjectDataProvider: o = new System.Windows.Data.ObjectDataProvider();   break;
                case KnownElements.ObjectKeyFrameCollection: o = new System.Windows.Media.Animation.ObjectKeyFrameCollection();   break; 
                case KnownElements.OrthographicCamera: o = new System.Windows.Media.Media3D.OrthographicCamera();   break;
                case KnownElements.OuterGlowBitmapEffect: o = new System.Windows.Media.Effects.OuterGlowBitmapEffect();   break;
                case KnownElements.Page: o = new System.Windows.Controls.Page();   break;
                case KnownElements.PageContent: o = new System.Windows.Documents.PageContent();   break; 
                case KnownElements.Paragraph: o = new System.Windows.Documents.Paragraph();   break;
                case KnownElements.ParallelTimeline: o = new System.Windows.Media.Animation.ParallelTimeline();   break; 
                case KnownElements.ParserContext: o = new System.Windows.Markup.ParserContext();   break; 
                case KnownElements.PasswordBox: o = new System.Windows.Controls.PasswordBox();   break;
                case KnownElements.Path: o = new System.Windows.Shapes.Path();   break; 
                case KnownElements.PathFigure: o = new System.Windows.Media.PathFigure();   break;
                case KnownElements.PathFigureCollection: o = new System.Windows.Media.PathFigureCollection();   break;
                case KnownElements.PathFigureCollectionConverter: o = new System.Windows.Media.PathFigureCollectionConverter();   break;
                case KnownElements.PathGeometry: o = new System.Windows.Media.PathGeometry();   break; 
                case KnownElements.PathSegmentCollection: o = new System.Windows.Media.PathSegmentCollection();   break;
                case KnownElements.PauseStoryboard: o = new System.Windows.Media.Animation.PauseStoryboard();   break; 
                case KnownElements.Pen: o = new System.Windows.Media.Pen();   break; 
                case KnownElements.PerspectiveCamera: o = new System.Windows.Media.Media3D.PerspectiveCamera();   break;
                case KnownElements.PixelFormat: o = new System.Windows.Media.PixelFormat();   break; 
                case KnownElements.PixelFormatConverter: o = new System.Windows.Media.PixelFormatConverter();   break;
                case KnownElements.PngBitmapEncoder: o = new System.Windows.Media.Imaging.PngBitmapEncoder();   break;
                case KnownElements.Point: o = new System.Windows.Point();   break;
                case KnownElements.Point3D: o = new System.Windows.Media.Media3D.Point3D();   break; 
                case KnownElements.Point3DAnimation: o = new System.Windows.Media.Animation.Point3DAnimation();   break;
                case KnownElements.Point3DAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.Point3DAnimationUsingKeyFrames();   break; 
                case KnownElements.Point3DCollection: o = new System.Windows.Media.Media3D.Point3DCollection();   break; 
                case KnownElements.Point3DCollectionConverter: o = new System.Windows.Media.Media3D.Point3DCollectionConverter();   break;
                case KnownElements.Point3DConverter: o = new System.Windows.Media.Media3D.Point3DConverter();   break; 
                case KnownElements.Point3DKeyFrameCollection: o = new System.Windows.Media.Animation.Point3DKeyFrameCollection();   break;
                case KnownElements.Point4D: o = new System.Windows.Media.Media3D.Point4D();   break;
                case KnownElements.Point4DConverter: o = new System.Windows.Media.Media3D.Point4DConverter();   break;
                case KnownElements.PointAnimation: o = new System.Windows.Media.Animation.PointAnimation();   break; 
                case KnownElements.PointAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.PointAnimationUsingKeyFrames();   break;
                case KnownElements.PointAnimationUsingPath: o = new System.Windows.Media.Animation.PointAnimationUsingPath();   break; 
                case KnownElements.PointCollection: o = new System.Windows.Media.PointCollection();   break; 
                case KnownElements.PointCollectionConverter: o = new System.Windows.Media.PointCollectionConverter();   break;
                case KnownElements.PointConverter: o = new System.Windows.PointConverter();   break; 
                case KnownElements.PointIListConverter: o = new System.Windows.Media.Converters.PointIListConverter();   break;
                case KnownElements.PointKeyFrameCollection: o = new System.Windows.Media.Animation.PointKeyFrameCollection();   break;
                case KnownElements.PointLight: o = new System.Windows.Media.Media3D.PointLight();   break;
                case KnownElements.PolyBezierSegment: o = new System.Windows.Media.PolyBezierSegment();   break; 
                case KnownElements.PolyLineSegment: o = new System.Windows.Media.PolyLineSegment();   break;
                case KnownElements.PolyQuadraticBezierSegment: o = new System.Windows.Media.PolyQuadraticBezierSegment();   break; 
                case KnownElements.Polygon: o = new System.Windows.Shapes.Polygon();   break; 
                case KnownElements.Polyline: o = new System.Windows.Shapes.Polyline();   break;
                case KnownElements.Popup: o = new System.Windows.Controls.Primitives.Popup();   break; 
                case KnownElements.PriorityBinding: o = new System.Windows.Data.PriorityBinding();   break;
                case KnownElements.ProgressBar: o = new System.Windows.Controls.ProgressBar();   break;
                case KnownElements.PropertyPathConverter: o = new System.Windows.PropertyPathConverter();   break;
                case KnownElements.QuadraticBezierSegment: o = new System.Windows.Media.QuadraticBezierSegment();   break; 
                case KnownElements.Quaternion: o = new System.Windows.Media.Media3D.Quaternion();   break;
                case KnownElements.QuaternionAnimation: o = new System.Windows.Media.Animation.QuaternionAnimation();   break; 
                case KnownElements.QuaternionAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.QuaternionAnimationUsingKeyFrames();   break; 
                case KnownElements.QuaternionConverter: o = new System.Windows.Media.Media3D.QuaternionConverter();   break;
                case KnownElements.QuaternionKeyFrameCollection: o = new System.Windows.Media.Animation.QuaternionKeyFrameCollection();   break; 
                case KnownElements.QuaternionRotation3D: o = new System.Windows.Media.Media3D.QuaternionRotation3D();   break;
                case KnownElements.RadialGradientBrush: o = new System.Windows.Media.RadialGradientBrush();   break;
                case KnownElements.RadioButton: o = new System.Windows.Controls.RadioButton();   break;
                case KnownElements.Rect: o = new System.Windows.Rect();   break; 
                case KnownElements.Rect3D: o = new System.Windows.Media.Media3D.Rect3D();   break;
                case KnownElements.Rect3DConverter: o = new System.Windows.Media.Media3D.Rect3DConverter();   break; 
                case KnownElements.RectAnimation: o = new System.Windows.Media.Animation.RectAnimation();   break; 
                case KnownElements.RectAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.RectAnimationUsingKeyFrames();   break;
                case KnownElements.RectConverter: o = new System.Windows.RectConverter();   break; 
                case KnownElements.RectKeyFrameCollection: o = new System.Windows.Media.Animation.RectKeyFrameCollection();   break;
                case KnownElements.Rectangle: o = new System.Windows.Shapes.Rectangle();   break;
                case KnownElements.RectangleGeometry: o = new System.Windows.Media.RectangleGeometry();   break;
                case KnownElements.RelativeSource: o = new System.Windows.Data.RelativeSource();   break; 
                case KnownElements.RemoveStoryboard: o = new System.Windows.Media.Animation.RemoveStoryboard();   break;
                case KnownElements.RepeatBehavior: o = new System.Windows.Media.Animation.RepeatBehavior();   break; 
                case KnownElements.RepeatBehaviorConverter: o = new System.Windows.Media.Animation.RepeatBehaviorConverter();   break; 
                case KnownElements.RepeatButton: o = new System.Windows.Controls.Primitives.RepeatButton();   break;
                case KnownElements.ResizeGrip: o = new System.Windows.Controls.Primitives.ResizeGrip();   break; 
                case KnownElements.ResourceDictionary: o = new System.Windows.ResourceDictionary();   break;
                case KnownElements.ResumeStoryboard: o = new System.Windows.Media.Animation.ResumeStoryboard();   break;
                case KnownElements.RichTextBox: o = new System.Windows.Controls.RichTextBox();   break;
                case KnownElements.RotateTransform: o = new System.Windows.Media.RotateTransform();   break; 
                case KnownElements.RotateTransform3D: o = new System.Windows.Media.Media3D.RotateTransform3D();   break;
                case KnownElements.Rotation3DAnimation: o = new System.Windows.Media.Animation.Rotation3DAnimation();   break; 
                case KnownElements.Rotation3DAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.Rotation3DAnimationUsingKeyFrames();   break; 
                case KnownElements.Rotation3DKeyFrameCollection: o = new System.Windows.Media.Animation.Rotation3DKeyFrameCollection();   break;
                case KnownElements.RoutedCommand: o = new System.Windows.Input.RoutedCommand();   break; 
                case KnownElements.RoutedEventConverter: o = new System.Windows.Markup.RoutedEventConverter();   break;
                case KnownElements.RoutedUICommand: o = new System.Windows.Input.RoutedUICommand();   break;
                case KnownElements.RowDefinition: o = new System.Windows.Controls.RowDefinition();   break;
                case KnownElements.Run: o = new System.Windows.Documents.Run();   break; 
                case KnownElements.SByteConverter: o = new System.ComponentModel.SByteConverter();   break;
                case KnownElements.ScaleTransform: o = new System.Windows.Media.ScaleTransform();   break; 
                case KnownElements.ScaleTransform3D: o = new System.Windows.Media.Media3D.ScaleTransform3D();   break; 
                case KnownElements.ScrollBar: o = new System.Windows.Controls.Primitives.ScrollBar();   break;
                case KnownElements.ScrollContentPresenter: o = new System.Windows.Controls.ScrollContentPresenter();   break; 
                case KnownElements.ScrollViewer: o = new System.Windows.Controls.ScrollViewer();   break;
                case KnownElements.Section: o = new System.Windows.Documents.Section();   break;
                case KnownElements.SeekStoryboard: o = new System.Windows.Media.Animation.SeekStoryboard();   break;
                case KnownElements.Separator: o = new System.Windows.Controls.Separator();   break; 
                case KnownElements.SetStoryboardSpeedRatio: o = new System.Windows.Media.Animation.SetStoryboardSpeedRatio();   break;
                case KnownElements.Setter: o = new System.Windows.Setter();   break; 
                case KnownElements.SingleAnimation: o = new System.Windows.Media.Animation.SingleAnimation();   break; 
                case KnownElements.SingleAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.SingleAnimationUsingKeyFrames();   break;
                case KnownElements.SingleConverter: o = new System.ComponentModel.SingleConverter();   break; 
                case KnownElements.SingleKeyFrameCollection: o = new System.Windows.Media.Animation.SingleKeyFrameCollection();   break;
                case KnownElements.Size: o = new System.Windows.Size();   break;
                case KnownElements.Size3D: o = new System.Windows.Media.Media3D.Size3D();   break;
                case KnownElements.Size3DConverter: o = new System.Windows.Media.Media3D.Size3DConverter();   break; 
                case KnownElements.SizeAnimation: o = new System.Windows.Media.Animation.SizeAnimation();   break;
                case KnownElements.SizeAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.SizeAnimationUsingKeyFrames();   break; 
                case KnownElements.SizeConverter: o = new System.Windows.SizeConverter();   break; 
                case KnownElements.SizeKeyFrameCollection: o = new System.Windows.Media.Animation.SizeKeyFrameCollection();   break;
                case KnownElements.SkewTransform: o = new System.Windows.Media.SkewTransform();   break; 
                case KnownElements.SkipStoryboardToFill: o = new System.Windows.Media.Animation.SkipStoryboardToFill();   break;
                case KnownElements.Slider: o = new System.Windows.Controls.Slider();   break;
                case KnownElements.SolidColorBrush: o = new System.Windows.Media.SolidColorBrush();   break;
                case KnownElements.SoundPlayerAction: o = new System.Windows.Controls.SoundPlayerAction();   break; 
                case KnownElements.Span: o = new System.Windows.Documents.Span();   break;
                case KnownElements.SpecularMaterial: o = new System.Windows.Media.Media3D.SpecularMaterial();   break; 
                case KnownElements.SplineByteKeyFrame: o = new System.Windows.Media.Animation.SplineByteKeyFrame();   break; 
                case KnownElements.SplineColorKeyFrame: o = new System.Windows.Media.Animation.SplineColorKeyFrame();   break;
                case KnownElements.SplineDecimalKeyFrame: o = new System.Windows.Media.Animation.SplineDecimalKeyFrame();   break; 
                case KnownElements.SplineDoubleKeyFrame: o = new System.Windows.Media.Animation.SplineDoubleKeyFrame();   break;
                case KnownElements.SplineInt16KeyFrame: o = new System.Windows.Media.Animation.SplineInt16KeyFrame();   break;
                case KnownElements.SplineInt32KeyFrame: o = new System.Windows.Media.Animation.SplineInt32KeyFrame();   break;
                case KnownElements.SplineInt64KeyFrame: o = new System.Windows.Media.Animation.SplineInt64KeyFrame();   break; 
                case KnownElements.SplinePoint3DKeyFrame: o = new System.Windows.Media.Animation.SplinePoint3DKeyFrame();   break;
                case KnownElements.SplinePointKeyFrame: o = new System.Windows.Media.Animation.SplinePointKeyFrame();   break; 
                case KnownElements.SplineQuaternionKeyFrame: o = new System.Windows.Media.Animation.SplineQuaternionKeyFrame();   break; 
                case KnownElements.SplineRectKeyFrame: o = new System.Windows.Media.Animation.SplineRectKeyFrame();   break;
                case KnownElements.SplineRotation3DKeyFrame: o = new System.Windows.Media.Animation.SplineRotation3DKeyFrame();   break; 
                case KnownElements.SplineSingleKeyFrame: o = new System.Windows.Media.Animation.SplineSingleKeyFrame();   break;
                case KnownElements.SplineSizeKeyFrame: o = new System.Windows.Media.Animation.SplineSizeKeyFrame();   break;
                case KnownElements.SplineThicknessKeyFrame: o = new System.Windows.Media.Animation.SplineThicknessKeyFrame();   break;
                case KnownElements.SplineVector3DKeyFrame: o = new System.Windows.Media.Animation.SplineVector3DKeyFrame();   break; 
                case KnownElements.SplineVectorKeyFrame: o = new System.Windows.Media.Animation.SplineVectorKeyFrame();   break;
                case KnownElements.SpotLight: o = new System.Windows.Media.Media3D.SpotLight();   break; 
                case KnownElements.StackPanel: o = new System.Windows.Controls.StackPanel();   break; 
                case KnownElements.StaticExtension: o = new System.Windows.Markup.StaticExtension();   break;
                case KnownElements.StaticResourceExtension: o = new System.Windows.StaticResourceExtension();   break; 
                case KnownElements.StatusBar: o = new System.Windows.Controls.Primitives.StatusBar();   break;
                case KnownElements.StatusBarItem: o = new System.Windows.Controls.Primitives.StatusBarItem();   break;
                case KnownElements.StopStoryboard: o = new System.Windows.Media.Animation.StopStoryboard();   break;
                case KnownElements.Storyboard: o = new System.Windows.Media.Animation.Storyboard();   break; 
                case KnownElements.StreamGeometry: o = new System.Windows.Media.StreamGeometry();   break;
                case KnownElements.StreamResourceInfo: o = new System.Windows.Resources.StreamResourceInfo();   break; 
                case KnownElements.StringAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.StringAnimationUsingKeyFrames();   break; 
                case KnownElements.StringConverter: o = new System.ComponentModel.StringConverter();   break;
                case KnownElements.StringKeyFrameCollection: o = new System.Windows.Media.Animation.StringKeyFrameCollection();   break; 
                case KnownElements.StrokeCollection: o = new System.Windows.Ink.StrokeCollection();   break;
                case KnownElements.StrokeCollectionConverter: o = new System.Windows.StrokeCollectionConverter();   break;
                case KnownElements.Style: o = new System.Windows.Style();   break;
                case KnownElements.TabControl: o = new System.Windows.Controls.TabControl();   break; 
                case KnownElements.TabItem: o = new System.Windows.Controls.TabItem();   break;
                case KnownElements.TabPanel: o = new System.Windows.Controls.Primitives.TabPanel();   break; 
                case KnownElements.Table: o = new System.Windows.Documents.Table();   break; 
                case KnownElements.TableCell: o = new System.Windows.Documents.TableCell();   break;
                case KnownElements.TableColumn: o = new System.Windows.Documents.TableColumn();   break; 
                case KnownElements.TableRow: o = new System.Windows.Documents.TableRow();   break;
                case KnownElements.TableRowGroup: o = new System.Windows.Documents.TableRowGroup();   break;
                case KnownElements.TemplateBindingExpressionConverter: o = new System.Windows.TemplateBindingExpressionConverter();   break;
                case KnownElements.TemplateBindingExtension: o = new System.Windows.TemplateBindingExtension();   break; 
                case KnownElements.TemplateBindingExtensionConverter: o = new System.Windows.TemplateBindingExtensionConverter();   break;
                case KnownElements.TemplateKeyConverter: o = new System.Windows.Markup.TemplateKeyConverter();   break; 
                case KnownElements.TextBlock: o = new System.Windows.Controls.TextBlock();   break; 
                case KnownElements.TextBox: o = new System.Windows.Controls.TextBox();   break;
                case KnownElements.TextDecoration: o = new System.Windows.TextDecoration();   break; 
                case KnownElements.TextDecorationCollection: o = new System.Windows.TextDecorationCollection();   break;
                case KnownElements.TextDecorationCollectionConverter: o = new System.Windows.TextDecorationCollectionConverter();   break;
                case KnownElements.TextEffect: o = new System.Windows.Media.TextEffect();   break;
                case KnownElements.TextEffectCollection: o = new System.Windows.Media.TextEffectCollection();   break; 
                case KnownElements.ThemeDictionaryExtension: o = new System.Windows.ThemeDictionaryExtension();   break;
                case KnownElements.Thickness: o = new System.Windows.Thickness();   break; 
                case KnownElements.ThicknessAnimation: o = new System.Windows.Media.Animation.ThicknessAnimation();   break; 
                case KnownElements.ThicknessAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.ThicknessAnimationUsingKeyFrames();   break;
                case KnownElements.ThicknessConverter: o = new System.Windows.ThicknessConverter();   break; 
                case KnownElements.ThicknessKeyFrameCollection: o = new System.Windows.Media.Animation.ThicknessKeyFrameCollection();   break;
                case KnownElements.Thumb: o = new System.Windows.Controls.Primitives.Thumb();   break;
                case KnownElements.TickBar: o = new System.Windows.Controls.Primitives.TickBar();   break;
                case KnownElements.TiffBitmapEncoder: o = new System.Windows.Media.Imaging.TiffBitmapEncoder();   break; 
                case KnownElements.TimeSpanConverter: o = new System.ComponentModel.TimeSpanConverter();   break;
                case KnownElements.TimelineCollection: o = new System.Windows.Media.Animation.TimelineCollection();   break; 
                case KnownElements.ToggleButton: o = new System.Windows.Controls.Primitives.ToggleButton();   break; 
                case KnownElements.ToolBar: o = new System.Windows.Controls.ToolBar();   break;
                case KnownElements.ToolBarOverflowPanel: o = new System.Windows.Controls.Primitives.ToolBarOverflowPanel();   break; 
                case KnownElements.ToolBarPanel: o = new System.Windows.Controls.Primitives.ToolBarPanel();   break;
                case KnownElements.ToolBarTray: o = new System.Windows.Controls.ToolBarTray();   break;
                case KnownElements.ToolTip: o = new System.Windows.Controls.ToolTip();   break;
                case KnownElements.Track: o = new System.Windows.Controls.Primitives.Track();   break; 
                case KnownElements.Transform3DCollection: o = new System.Windows.Media.Media3D.Transform3DCollection();   break;
                case KnownElements.Transform3DGroup: o = new System.Windows.Media.Media3D.Transform3DGroup();   break; 
                case KnownElements.TransformCollection: o = new System.Windows.Media.TransformCollection();   break; 
                case KnownElements.TransformConverter: o = new System.Windows.Media.TransformConverter();   break;
                case KnownElements.TransformGroup: o = new System.Windows.Media.TransformGroup();   break; 
                case KnownElements.TransformedBitmap: o = new System.Windows.Media.Imaging.TransformedBitmap();   break;
                case KnownElements.TranslateTransform: o = new System.Windows.Media.TranslateTransform();   break;
                case KnownElements.TranslateTransform3D: o = new System.Windows.Media.Media3D.TranslateTransform3D();   break;
                case KnownElements.TreeView: o = new System.Windows.Controls.TreeView();   break; 
                case KnownElements.TreeViewItem: o = new System.Windows.Controls.TreeViewItem();   break;
                case KnownElements.Trigger: o = new System.Windows.Trigger();   break; 
                case KnownElements.TypeExtension: o = new System.Windows.Markup.TypeExtension();   break; 
                case KnownElements.TypeTypeConverter: o = new System.Windows.Markup.TypeTypeConverter();   break;
                case KnownElements.UIElement: o = new System.Windows.UIElement();   break; 
                case KnownElements.UInt16Converter: o = new System.ComponentModel.UInt16Converter();   break;
                case KnownElements.UInt32Converter: o = new System.ComponentModel.UInt32Converter();   break;
                case KnownElements.UInt64Converter: o = new System.ComponentModel.UInt64Converter();   break;
                case KnownElements.UShortIListConverter: o = new System.Windows.Media.Converters.UShortIListConverter();   break; 
                case KnownElements.Underline: o = new System.Windows.Documents.Underline();   break;
                case KnownElements.UniformGrid: o = new System.Windows.Controls.Primitives.UniformGrid();   break; 
                case KnownElements.UriTypeConverter: o = new System.UriTypeConverter();   break; 
                case KnownElements.UserControl: o = new System.Windows.Controls.UserControl();   break;
                case KnownElements.Vector: o = new System.Windows.Vector();   break; 
                case KnownElements.Vector3D: o = new System.Windows.Media.Media3D.Vector3D();   break;
                case KnownElements.Vector3DAnimation: o = new System.Windows.Media.Animation.Vector3DAnimation();   break;
                case KnownElements.Vector3DAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.Vector3DAnimationUsingKeyFrames();   break;
                case KnownElements.Vector3DCollection: o = new System.Windows.Media.Media3D.Vector3DCollection();   break; 
                case KnownElements.Vector3DCollectionConverter: o = new System.Windows.Media.Media3D.Vector3DCollectionConverter();   break;
                case KnownElements.Vector3DConverter: o = new System.Windows.Media.Media3D.Vector3DConverter();   break; 
                case KnownElements.Vector3DKeyFrameCollection: o = new System.Windows.Media.Animation.Vector3DKeyFrameCollection();   break; 
                case KnownElements.VectorAnimation: o = new System.Windows.Media.Animation.VectorAnimation();   break;
                case KnownElements.VectorAnimationUsingKeyFrames: o = new System.Windows.Media.Animation.VectorAnimationUsingKeyFrames();   break; 
                case KnownElements.VectorCollection: o = new System.Windows.Media.VectorCollection();   break;
                case KnownElements.VectorCollectionConverter: o = new System.Windows.Media.VectorCollectionConverter();   break;
                case KnownElements.VectorConverter: o = new System.Windows.VectorConverter();   break;
                case KnownElements.VectorKeyFrameCollection: o = new System.Windows.Media.Animation.VectorKeyFrameCollection();   break; 
                case KnownElements.VideoDrawing: o = new System.Windows.Media.VideoDrawing();   break;
                case KnownElements.Viewbox: o = new System.Windows.Controls.Viewbox();   break; 
                case KnownElements.Viewport3D: o = new System.Windows.Controls.Viewport3D();   break; 
                case KnownElements.Viewport3DVisual: o = new System.Windows.Media.Media3D.Viewport3DVisual();   break;
                case KnownElements.VirtualizingStackPanel: o = new System.Windows.Controls.VirtualizingStackPanel();   break; 
                case KnownElements.VisualBrush: o = new System.Windows.Media.VisualBrush();   break;
                case KnownElements.Window: o = new System.Windows.Window();   break;
                case KnownElements.WmpBitmapEncoder: o = new System.Windows.Media.Imaging.WmpBitmapEncoder();   break;
                case KnownElements.WrapPanel: o = new System.Windows.Controls.WrapPanel();   break; 
                case KnownElements.XamlBrushSerializer: o = new System.Windows.Markup.XamlBrushSerializer();   break;
                case KnownElements.XamlInt32CollectionSerializer: o = new System.Windows.Markup.XamlInt32CollectionSerializer();   break; 
                case KnownElements.XamlPathDataSerializer: o = new System.Windows.Markup.XamlPathDataSerializer();   break; 
                case KnownElements.XamlPoint3DCollectionSerializer: o = new System.Windows.Markup.XamlPoint3DCollectionSerializer();   break;
                case KnownElements.XamlPointCollectionSerializer: o = new System.Windows.Markup.XamlPointCollectionSerializer();   break; 
                case KnownElements.XamlStyleSerializer: o = new System.Windows.Markup.XamlStyleSerializer();   break;
                case KnownElements.XamlTemplateSerializer: o = new System.Windows.Markup.XamlTemplateSerializer();   break;
                case KnownElements.XamlVector3DCollectionSerializer: o = new System.Windows.Markup.XamlVector3DCollectionSerializer();   break;
                case KnownElements.XmlDataProvider: o = new System.Windows.Data.XmlDataProvider();   break; 
                case KnownElements.XmlLanguageConverter: o = new System.Windows.Markup.XmlLanguageConverter();   break;
                case KnownElements.XmlNamespaceMapping: o = new System.Windows.Data.XmlNamespaceMapping();   break; 
                case KnownElements.ZoomPercentageConverter: o = new System.Windows.Documents.ZoomPercentageConverter();   break; 
            }
            return o; 
        }
        public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
        {
            var start  = new WpfPoint(point.X, (point.Y - Size / 2));
            var figure = new WpfPathFigure {
                StartPoint = start
            };
            var segment = new WpfPolyLineSegment();
            var points  = segment.Points;

            points.Add(new WpfPoint((point.X + Size * 1 / 8), (point.Y - Size * 1 / 8)));
            points.Add(new WpfPoint((point.X + Size / 2), (point.Y - Size * 1 / 8)));
            points.Add(new WpfPoint((point.X + Size * 2 / 8), (point.Y + Size * 1 / 8)));
            points.Add(new WpfPoint((point.X + Size * 3 / 8), (point.Y + Size / 2)));
            points.Add(new WpfPoint((point.X), (point.Y + Size * 2 / 8)));
            points.Add(new WpfPoint((point.X - Size * 3 / 8), (point.Y + Size / 2)));
            points.Add(new WpfPoint((point.X - Size * 2 / 8), (point.Y + Size * 1 / 8)));
            points.Add(new WpfPoint((point.X - Size / 2), (point.Y - Size * 1 / 8)));
            points.Add(new WpfPoint((point.X - Size * 1 / 8), (point.Y - Size * 1 / 8)));
            points.Add(start);

            figure.IsClosed = true;
            figure.IsFilled = true;

            pathGeometry.Figures.Add(figure);
        }
Example #3
0
 static void AddCurve(WPathFigure pathFigure, Curve curve)
 {
     foreach (ICurve seg in curve.Segments)
     {
         var ls = seg as MLineSegment;
         if (ls != null)
         {
             pathFigure.Segments.Add(new WLineSegment(Common.WpfPoint(ls.End), true));
         }
         else
         {
             var ellipse = seg as MEllipse;
             if (ellipse != null)
             {
                 pathFigure.Segments.Add(new WArcSegment(Common.WpfPoint(ellipse.End),
                                                         new WSize(ellipse.AxisA.Length, ellipse.AxisB.Length),
                                                         MPoint.Angle(new MPoint(1, 0), ellipse.AxisA),
                                                         ellipse.ParEnd - ellipse.ParEnd >= Math.PI,
                                                         !ellipse.OrientedCounterclockwise()
                         ? WSweepDirection.Counterclockwise
                         : WSweepDirection.Clockwise, true));
             }
         }
     }
 }
Example #4
0
        protected override void UpdatePath()
        {
            var clientRect = this.ClientBounds;

#if WINFORM
            Path.Reset();

            if (sweepAngle > 0 && clientRect.Width > 0 && clientRect.Height > 0)
            {
                Path.AddLine(this.OriginPoint, this.OriginPoint);
                Path.AddArc(0, 0, clientRect.Width, clientRect.Height, this.startAngle - 90, this.sweepAngle);
                Path.CloseAllFigures();
            }
#elif WPF
            Path.Clear();

            if (this.sweepAngle > 0)
            {
                System.Windows.Media.PathFigure pf = new System.Windows.Media.PathFigure();

                pf.Segments.Add(new System.Windows.Media.LineSegment(this.OriginPoint, false));
                pf.Segments.Add(new System.Windows.Media.ArcSegment(new System.Windows.Point(0, 0),
                                                                    new System.Windows.Size(this.Width, this.Height), this.sweepAngle, true, System.Windows.Media.SweepDirection.Clockwise, false));

                Path.Figures.Add(pf);
            }
#elif ANDROID
#endif // WINFORM
        }
Example #5
0
    /// <summary>
    /// Gets the smallest rectangle that completely contains all points of the segments.
    /// </summary>
    public override XRect GetBoundingBox()
    {
      System.Windows.Media.ArcSegment arc = new System.Windows.Media.ArcSegment
      (new System.Windows.Point(Point.X, Point.Y), new System.Windows.Size(Size.Width, Size.Height), RotationAngle, IsLargeArc,
      (System.Windows.Media.SweepDirection)SweepDirection, IsStroked);
      System.Windows.Media.PathFigure figure = new System.Windows.Media.PathFigure();
      System.Windows.Media.PathGeometry geo = new System.Windows.Media.PathGeometry();
      System.Windows.Rect bounds = geo.Bounds;

      // TODO: incorrect result, just a hack
      XRect rect = new XRect(Point.X - Size.Width, Point.Y - Size.Height, 2 * Size.Width, 2 * Size.Height);
      return rect;
    }
Example #6
0
        WGeometry CreateGeometryFromMsaglCurve(ICurve iCurve)
        {
            var pathGeometry = new WPathGeometry();
            var pathFigure   = new WPathFigure
            {
                IsClosed   = true,
                IsFilled   = true,
                StartPoint = Common.WpfPoint(iCurve.Start)
            };

            var curve = iCurve as Curve;

            if (curve != null)
            {
                AddCurve(pathFigure, curve);
            }
            else
            {
                var rect = iCurve as RoundedRect;
                if (rect != null)
                {
                    AddCurve(pathFigure, rect.Curve);
                }
                else
                {
                    var ellipse = iCurve as MEllipse;
                    if (ellipse != null)
                    {
                        return(new WEllipseGeometry(Common.WpfPoint(ellipse.Center), ellipse.AxisA.Length,
                                                    ellipse.AxisB.Length));
                    }
                    var poly = iCurve as MPolyline;
                    if (poly != null)
                    {
                        var p = poly.StartPoint.Next;
                        do
                        {
                            pathFigure.Segments.Add(new WLineSegment(Common.WpfPoint(p.Point),
                                                                     true));

                            p = p.NextOnPolyline;
                        } while (p != poly.StartPoint);
                    }
                }
            }


            pathGeometry.Figures.Add(pathFigure);

            return(pathGeometry);
        }
Example #7
0
        WGeometry CreateCollapseSymbolPath(MPoint center, double width)
        {
            var pathGeometry = new WPathGeometry();
            var pathFigure   = new WPathFigure {
                StartPoint = Common.WpfPoint(center + new MPoint(-width, width))
            };

            pathFigure.Segments.Add(new WLineSegment(Common.WpfPoint(center), true));
            pathFigure.Segments.Add(
                new WLineSegment(Common.WpfPoint(center + new MPoint(width, width)), true));

            pathGeometry.Figures.Add(pathFigure);
            return(pathGeometry);
        }
Example #8
0
        /// <summary>
        /// Gets the smallest rectangle that completely contains all points of the segments.
        /// </summary>
        public override XRect GetBoundingBox()
        {
            System.Windows.Media.ArcSegment arc = new System.Windows.Media.ArcSegment
                                                      (new System.Windows.Point(Point.X, Point.Y), new System.Windows.Size(Size.Width, Size.Height), RotationAngle, IsLargeArc,
                                                      (System.Windows.Media.SweepDirection)SweepDirection, IsStroked);
            System.Windows.Media.PathFigure   figure = new System.Windows.Media.PathFigure();
            System.Windows.Media.PathGeometry geo    = new System.Windows.Media.PathGeometry();
            System.Windows.Rect bounds = geo.Bounds;

            // TODO: incorrect result, just a hack
            XRect rect = new XRect(Point.X - Size.Width, Point.Y - Size.Height, 2 * Size.Width, 2 * Size.Height);

            return(rect);
        }
        public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
        {
            var start  = new WpfPoint(point.X, point.Y - Size * 0.5);
            var figure = new WpfPathFigure {
                StartPoint = start
            };
            var segment = new WpfArcSegment {
                Size = new Size(Size, Size), RotationAngle = 360, IsLargeArc = true, SweepDirection = WpfSweepDirection.Clockwise, Point = start
            };

            figure.Segments.Add(segment);
            figure.IsClosed = true;
            figure.IsFilled = true;
            pathGeometry.Figures.Add(figure);
        }
        public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
        {
            var figure = new WpfPathFigure {StartPoint = new WpfPoint(point.X - 0.5*Size, point.Y - 0.5*Size)};
            var segment = new WpfPolyLineSegment();
            var points = segment.Points;
            points.Add(new WpfPoint(point.X + 0.5*Size, point.Y - 0.5*Size));
            points.Add(new WpfPoint(point.X + 0.5*Size, point.Y + 0.5*Size));
            points.Add(new WpfPoint(point.X - 0.5*Size, point.Y + 0.5*Size));
            points.Add(figure.StartPoint);

            figure.Segments.Add(segment);
            figure.IsClosed = true;
            figure.IsFilled = true;

            pathGeometry.Figures.Add(figure);
        }
Example #11
0
        /// <summary>
        /// Paint content of cell body.
        /// </summary>
        /// <param name="dc">Platform independency graphics context.</param>
        protected override void OnContentPaint(CellDrawingContext dc)
        {
#if WINFORM
            System.Windows.Forms.ButtonState bs = ButtonState.Normal;
            if (IsPressed)
            {
                bs |= ButtonState.Pushed;
            }
            if (IsChecked)
            {
                bs |= ButtonState.Checked;
            }

            ControlPaint.DrawCheckBox(dc.Graphics.PlatformGraphics, (System.Drawing.Rectangle)ContentBounds, bs);
#elif WPF
            var g = dc.Graphics;

            if (this.IsPressed)
            {
                g.FillRectangle(this.ContentBounds, StaticResources.SystemColor_Control);
            }

            g.DrawRectangle(this.ContentBounds, StaticResources.SystemColor_ControlDark);

            if (this.isChecked)
            {
                var x = this.ContentBounds.X;
                var y = this.ContentBounds.Y;
                var w = this.ContentBounds.Width;
                var h = this.ContentBounds.Height;

                var path   = new System.Windows.Media.PathGeometry();
                var figure = new System.Windows.Media.PathFigure(new System.Windows.Point(x + w * 0.167, y + h * 0.546),
                                                                 new System.Windows.Media.LineSegment[] {
                    new System.Windows.Media.LineSegment(new System.Windows.Point(x + w * 0.444, y + h * 0.712), false),
                    new System.Windows.Media.LineSegment(new System.Windows.Point(x + w * 0.833, y + h * 0.157), false),
                    new System.Windows.Media.LineSegment(new System.Windows.Point(x + w * 0.944, y + h * 0.323), false),
                    new System.Windows.Media.LineSegment(new System.Windows.Point(x + w * 0.500, y + h * 0.934), false),
                    new System.Windows.Media.LineSegment(new System.Windows.Point(x + w * 0.080, y + h * 0.712), false),
                }, true);

                path.Figures.Add(figure);

                g.FillPath(StaticResources.SystemColor_WindowText, path);
            }
#endif // WPF
        }
        public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
        {
            var figure = new WpfPathFigure {
                StartPoint = new WpfPoint(point.X - 0.5 * Size, point.Y - 0.5 * Size)
            };
            var segment = new WpfPolyLineSegment();
            var points  = segment.Points;

            points.Add(new WpfPoint(point.X + 0.5 * Size, point.Y - 0.5 * Size));
            points.Add(new WpfPoint(point.X + 0.5 * Size, point.Y + 0.5 * Size));
            points.Add(new WpfPoint(point.X - 0.5 * Size, point.Y + 0.5 * Size));
            points.Add(figure.StartPoint);

            figure.Segments.Add(segment);
            figure.IsClosed = true;
            figure.IsFilled = true;

            pathGeometry.Figures.Add(figure);
        }
        public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
        {
            var x1 = point.X - Size / 2f;
            var x2 = point.X - Size / 4f;
            var x3 = point.X + Size / 4f;
            var x4 = point.X + Size / 2f;

            var y1 = point.Y - Size / 2f;
            var y2 = point.Y - Size / 4f;
            var y3 = point.Y + Size / 4f;
            var y4 = point.Y + Size / 2f;

            var figure = new WpfPathFigure {
                StartPoint = new WpfPoint(x2, y1)
            };
            var segment = new WpfPolyLineSegment();
            var points  = segment.Points;

            points.Add(new WpfPoint(x3, y1));
            points.Add(new WpfPoint(x3, y2));
            points.Add(new WpfPoint(x4, y2));
            points.Add(new WpfPoint(x4, y3));
            points.Add(new WpfPoint(x3, y3));
            points.Add(new WpfPoint(x3, y4));
            points.Add(new WpfPoint(x2, y4));
            points.Add(new WpfPoint(x2, y3));
            points.Add(new WpfPoint(x1, y3));
            points.Add(new WpfPoint(x1, y2));
            points.Add(new WpfPoint(x2, y2));
            points.Add(new WpfPoint(x2, y1));

            figure.Segments.Add(segment);
            figure.IsClosed = true;
            figure.IsFilled = true;

            pathGeometry.Figures.Add(figure);
        }
Example #14
0
        /// <summary>
        /// Render plot view region of line chart component.
        /// </summary>
        /// <param name="dc">Platform no-associated drawing context.</param>
        protected override void OnPaint(DrawingContext dc)
        {
            var axisChart = Chart as AxisChart;

            var ai = axisChart.PrimaryAxisInfo;

            if (double.IsNaN(ai.Levels) || ai.Levels <= 0)
            {
                return;
            }

            var ds = Chart.DataSource;

            var g          = dc.Graphics;
            var clientRect = ClientBounds;

            double scaleX     = clientRect.Width / ds.CategoryCount;
            double scaleY     = clientRect.Height / (ai.Maximum - ai.Minimum);
            var    zeroHeight = (RGFloat)(ai.Minimum * scaleY + clientRect.Height);

#if WINFORM
            var path = new System.Drawing.Drawing2D.GraphicsPath();

            for (int r = 0; r < ds.SerialCount; r++)
            {
                var style     = axisChart.DataSerialStyles[r];
                var lastPoint = new System.Drawing.PointF((RGFloat)(0.5 * scaleX), zeroHeight);

                var point = lastPoint;
                for (int c = 0; c < ds.CategoryCount; c++)
                {
                    if (ds[r][c] is double value)
                    {
                        point.Y = zeroHeight - (RGFloat)(value * scaleY);
                    }
                    else
                    {
                        point.Y = zeroHeight;
                    }
                    path.AddLine(lastPoint, point);
                    lastPoint = point;
                    point.X  += (RGFloat)scaleX;
                }

                if (lastPoint.Y != zeroHeight)
                {
                    point.X = lastPoint.X;
                    point.Y = zeroHeight;
                    path.AddLine(lastPoint, point);
                }

                path.CloseFigure();

                g.FillPath(style.FillColor, path);

                path.Reset();
            }

            path.Dispose();
#elif WPF
            for (int r = 0; r < ds.SerialCount; r++)
            {
                var style = axisChart.DataSerialStyles[r];

                var seg = new System.Windows.Media.PathFigure();

                var lastPoint = new System.Windows.Point(0.5 * scaleX, zeroHeight);
                seg.StartPoint = lastPoint;

                var point = seg.StartPoint;
                for (int c = 0; c < ds.CategoryCount; c++)
                {
                    if (ds[r][c] is double value)
                    {
                        point.Y = zeroHeight - value * scaleY;
                    }
                    else
                    {
                        point.Y = zeroHeight;
                    }
                    seg.Segments.Add(new System.Windows.Media.LineSegment(point, true));
                    lastPoint = point;
                    point.X  += scaleX;
                }

                point.X = lastPoint.X;
                point.Y = zeroHeight;
                seg.Segments.Add(new System.Windows.Media.LineSegment(point, true));

                seg.IsClosed = true;

                var path = new System.Windows.Media.PathGeometry();
                path.Figures.Add(seg);
                g.FillPath(style.LineColor, path);
            }
#endif // WPF
        }
Example #15
0
        public System.Windows.Media.PathFigure FindPath(EmptyCell PathFrom, EmptyCell PathTo)
        {
            //FindPathCells(PathFrom, PathTo);

            EmptyCell backtrace = PathTo;
            EmptyCell Prev1     = PathTo;

            System.Collections.Generic.List <Point> Tracky = new List <Point>();
            System.Windows.Media.PathFigure         pf     = new System.Windows.Media.PathFigure();
            //Point Prev2 = End;
            //Point Prev3 = End;
            Point p0;
            Point p1;
            Point ppa;

            System.Windows.Media.BezierSegment bs;
            //TrackLength = 0;

            pf.StartPoint = backtrace.CenterPoint;//.TranslatePoint(new Point(21.65, 25), Arena.instance);

            //pf.StartPoint = backtrace.TranslatePoint(new Point(21.65, 25), Arena.instance);

            foreach (EmptyCell ec in FindPathCells(Begin, End))
//            //while ((backtrace.X != Begin.X || backtrace.Y != Begin.Y) && ((Cells[backtrace].Tag) as Point?).HasValue)
            {
                // ec.Body.Fill = System.Windows.Media.Brushes.Purple;
                backtrace = ec;
                //  TrackLength++;
                // System.Windows.Shapes.Line L = new System.Windows.Shapes.Line();
                // L.X1 = Cells[backtrace].TranslatePoint(new Point(.5, .5), Arena.instance).X + 21.65;
                // L.Y1 = Cells[backtrace].TranslatePoint(new Point(.5, .5), Arena.instance).Y + 25;
                //double xx = 0;
                //double yy = 0;
                //xx = (Cells[backtrace].Tag as Point?).Value.X;
                //yy = (Cells[backtrace].Tag as Point?).Value.Y;

                p0 = backtrace.CenterPoint; // .TranslatePoint(new Point(21.65, 25), Arena.instance);
                p1 = Prev1.CenterPoint;     // .TranslatePoint(new Point(21.65, 25), Arena.instance);

                ppa = new Point((p0.X + p1.X) / 2, (p0.Y + p1.Y) / 2);

                bs = new System.Windows.Media.BezierSegment(p1, p1, ppa, true);
                pf.Segments.Add(bs);


                //backtrace = new Point(xx, yy);

                //Prev3 = Prev2;
                //Prev2 = Prev1;
                Prev1 = ec;

                // L.X2 = Cells[new Point(xx, yy)].TranslatePoint(new Point(.5, .5), Arena.instance).X + 21.65;
                // L.Y2 = Cells[new Point(xx, yy)].TranslatePoint(new Point(.5, .5), Arena.instance).Y + 25;

                // L.Stroke = System.Windows.Media.Brushes.Green;
                // L.StrokeThickness = 4;
                //L.IsHitTestVisible = false;
                //L.Fill = System.Windows.Media.Brushes.Green;
                //L.Opacity = 1;

                //Arena.instance.Children.Add(L);
                //PathLines.Enqueue(L);
            }
            p0 = backtrace.CenterPoint; //.TranslatePoint(new Point(21.65, 25), Arena.instance);
            p1 = Prev1.CenterPoint;     //.TranslatePoint(new Point(21.65, 25), Arena.instance);

            ppa = new Point((p0.X + p1.X) / 2, (p0.Y + p1.Y) / 2);

            bs = new System.Windows.Media.BezierSegment(p1, p1, ppa, true);
            pf.Segments.Add(bs);

            return(pf);
        }
Example #16
0
        public void InnerTick(int Frame)
        {
            if (Health < 0)
            {
                Die(this);
                return;
            }

            Progress += 0.01;

            if (Progress < 0)
            {
                this.Visibility = Visibility.Hidden;

            }
            else
            {
                
                if (this.Visibility == Visibility.Hidden)
                {
                    this.Visibility = Visibility.Visible;    
                    Arena.instance.AddToArena(this);
                }
                

                if (Progress >= .75)//|| NextCell != CurrentCell.ToTarget[Counter % CurrentCell.ToTarget.Count]
                {
                    PreviousCell = CurrentCell;

                    lock (CurrentCell.CreepsInCell)
                    {
                        CurrentCell.CreepsInCell.Remove(this);
                    }
                    CurrentCell = NextCell;
                    lock (CurrentCell.CreepsInCell) CurrentCell.CreepsInCell.Add(this);
                    if (CurrentCell.ToTarget.Count == 0)
                    {
                        // no prize for failure.
                        Bounty = 0;

                        // remove the creep from play.
                        Die(this);

                        if (Arena.instance.Lifes-- <= 0)
                        {
                            // Game Over.
                            //MessageBox.Show("Game Over");
                        }
                    }
                    else// if (CurrentCell.ToTarget.Count == 1)
                    {
                        // NextCell = CurrentCell.ToTarget[0];
                        //}
                        //else
                        //{

                        if ((Counter & 1) == 0)
                        {
                            Counter >>= 2;
                        }
                        else
                        {
                            Counter >>= 2;
                            Counter = Counter | 1073741824;
                        }
                        NextCell = CurrentCell.ToTarget[Counter % CurrentCell.ToTarget.Count];
                    }
                    Progress -= 0.5;

                    // PERF:

                    // Generating Bezier's is expensive; some kind of cache...? or not generate per creep*per frame...

                    // should only be 30 possible curves
                    // 

                    Track = new System.Windows.Media.PathGeometry();
                    System.Windows.Media.PathFigure pf = new System.Windows.Media.PathFigure();
                    pf.StartPoint = new Point(PreviousCell.CenterPoint.X, PreviousCell.CenterPoint.Y);
                    Point p0 = new Point(CurrentCell.CenterPoint.X, CurrentCell.CenterPoint.Y);
                    //Point p1 = new Point(CurrentCell.CenterPoint.X, CurrentCell.CenterPoint.Y);
                    Point ppa = new Point(NextCell.CenterPoint.X, NextCell.CenterPoint.Y);
                    //System.Windows.Media.BezierSegment bs;
                    //bs = ;
                    pf.Segments.Add(new System.Windows.Media.BezierSegment(p0, p0, ppa, true));
                    Track.Figures.Add(pf);
                    //CreepTrack.Data = Track;
                    //CreepTrack.Stroke = System.Windows.Media.Brushes.Blue;
                    //CreepTrack.StrokeThickness = .5;
                    //CreepTrack.IsHitTestVisible = false;
                    //Arena.instance.AddToArena(CreepTrack);
                }



                Point op;
                Point ta;

                //Track.GetPointAtFractionLength((1 / Arena.instance.TrackLength) * (Progress), out op, out ta);

                //once/if I have a bezier cache, maybe cache the point-at-fraction-lenghts?
                if (Track!=null)
                {
                    
                
                Track.GetPointAtFractionLength((Progress), out op, out ta);


                XPos = (float)op.X;
                YPos = (float)op.Y;
                SetValue(System.Windows.Controls.Canvas.LeftProperty, op.X);
                SetValue(System.Windows.Controls.Canvas.TopProperty, op.Y);

                    // this.RenderTransformOrigin = new Point(0, 0);
                    //this.RenderTransform = null;

                    //this.RenderTransform = new System.Windows.Media.RotateTransform(Math.Atan2(ta.Y, ta.X) * 180 / Math.PI, 0, 0);

                }

                System.Windows.Media.Brush B = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb((byte)((Health / MaxHealth) * 255), 0, 0));
                Stroke = B;
                this.InvalidateVisual();
                
               

                
            }

        }
 { public virtual void Add(System.Windows.Media.PathFigure param0)
   {
       throw new System.NotImplementedException();
   }
 public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
 {
     var start = new WpfPoint(point.X, point.Y - Size * 0.5);
     var figure = new WpfPathFigure {StartPoint = start};
     var segment = new WpfArcSegment { Size = new Size(Size, Size), RotationAngle = 360, IsLargeArc = true, SweepDirection = WpfSweepDirection.Clockwise, Point = start };
     figure.Segments.Add(segment);
     figure.IsClosed = true;
     figure.IsFilled = true;
     pathGeometry.Figures.Add(figure);
 }
Example #19
0
        /// <summary>
        /// Render plot view region of line chart component.
        /// </summary>
        /// <param name="dc">Platform no-associated drawing context.</param>
        protected override void OnPaint(DrawingContext dc)
        {
            var axisChart = base.Chart as AxisChart;

            if (axisChart == null)
            {
                return;
            }

            var ds = Chart.DataSource;

            var g          = dc.Graphics;
            var clientRect = this.ClientBounds;


#if WINFORM
            var path = new System.Drawing.Drawing2D.GraphicsPath();

            for (int r = 0; r < ds.SerialCount; r++)
            {
                var style     = axisChart.DataSerialStyles[r];
                var lastPoint = new System.Drawing.PointF(axisChart.PlotColumnPoints[0], axisChart.ZeroHeight);

                for (int c = 0; c < ds.CategoryCount; c++)
                {
                    var pt = axisChart.PlotDataPoints[r][c];

                    System.Drawing.PointF point;

                    if (pt.hasValue)
                    {
                        point = new System.Drawing.PointF(axisChart.PlotColumnPoints[c], axisChart.ZeroHeight - pt.value);
                    }
                    else
                    {
                        point = new System.Drawing.PointF(axisChart.PlotColumnPoints[c], axisChart.ZeroHeight);
                    }

                    path.AddLine(lastPoint, point);
                    lastPoint = point;
                }

                var endPoint = new System.Drawing.PointF(axisChart.PlotColumnPoints[ds.CategoryCount - 1], axisChart.ZeroHeight);

                if (lastPoint != endPoint)
                {
                    path.AddLine(lastPoint, endPoint);
                }

                path.CloseFigure();

                g.FillPath(style.FillColor, path);

                path.Reset();
            }

            path.Dispose();
#elif WPF
            for (int r = 0; r < ds.SerialCount; r++)
            {
                var style = axisChart.DataSerialStyles[r];

                var seg = new System.Windows.Media.PathFigure();

                seg.StartPoint = new System.Windows.Point(axisChart.PlotColumnPoints[0], axisChart.ZeroHeight);

                for (int c = 0; c < ds.CategoryCount; c++)
                {
                    var pt = axisChart.PlotDataPoints[r][c];

                    System.Windows.Point point;

                    if (pt.hasValue)
                    {
                        point = new System.Windows.Point(axisChart.PlotColumnPoints[c], axisChart.ZeroHeight - pt.value);
                    }
                    else
                    {
                        point = new System.Windows.Point(axisChart.PlotColumnPoints[c], axisChart.ZeroHeight);
                    }

                    seg.Segments.Add(new System.Windows.Media.LineSegment(point, true));
                }

                var endPoint = new System.Windows.Point(axisChart.PlotColumnPoints[ds.CategoryCount - 1], axisChart.ZeroHeight);
                seg.Segments.Add(new System.Windows.Media.LineSegment(endPoint, true));

                seg.IsClosed = true;

                var path = new System.Windows.Media.PathGeometry();
                path.Figures.Add(seg);
                g.FillPath(style.LineColor, path);
            }
#endif // WPF
        }
Example #20
0
        public System.Windows.Media.PathFigure FindPath(EmptyCell PathFrom, EmptyCell PathTo)
        {
            //FindPathCells(PathFrom, PathTo);

            EmptyCell backtrace = PathTo;
            EmptyCell Prev1 = PathTo;
            System.Collections.Generic.List<Point> Tracky = new List<Point>();
            System.Windows.Media.PathFigure pf = new System.Windows.Media.PathFigure();
            //Point Prev2 = End;
            //Point Prev3 = End;
            Point p0;
            Point p1;
            Point ppa;

            System.Windows.Media.BezierSegment bs;
            //TrackLength = 0;

            pf.StartPoint = backtrace.CenterPoint;//.TranslatePoint(new Point(21.65, 25), Arena.instance);
            
            //pf.StartPoint = backtrace.TranslatePoint(new Point(21.65, 25), Arena.instance);
            
            foreach (EmptyCell ec in FindPathCells(Begin, End))
//            //while ((backtrace.X != Begin.X || backtrace.Y != Begin.Y) && ((Cells[backtrace].Tag) as Point?).HasValue)
            {
                // ec.Body.Fill = System.Windows.Media.Brushes.Purple;
                backtrace = ec;
              //  TrackLength++;
                // System.Windows.Shapes.Line L = new System.Windows.Shapes.Line();
                // L.X1 = Cells[backtrace].TranslatePoint(new Point(.5, .5), Arena.instance).X + 21.65;
                // L.Y1 = Cells[backtrace].TranslatePoint(new Point(.5, .5), Arena.instance).Y + 25;
                //double xx = 0;
                //double yy = 0;
                //xx = (Cells[backtrace].Tag as Point?).Value.X;
                //yy = (Cells[backtrace].Tag as Point?).Value.Y;

                p0 = backtrace.CenterPoint;// .TranslatePoint(new Point(21.65, 25), Arena.instance);
                p1 = Prev1.CenterPoint;// .TranslatePoint(new Point(21.65, 25), Arena.instance);

                ppa = new Point((p0.X + p1.X) / 2, (p0.Y + p1.Y) / 2);

                bs = new System.Windows.Media.BezierSegment(p1, p1, ppa, true);
                pf.Segments.Add(bs);


                //backtrace = new Point(xx, yy);

                //Prev3 = Prev2;
                //Prev2 = Prev1;
                Prev1 = ec;

                // L.X2 = Cells[new Point(xx, yy)].TranslatePoint(new Point(.5, .5), Arena.instance).X + 21.65;
                // L.Y2 = Cells[new Point(xx, yy)].TranslatePoint(new Point(.5, .5), Arena.instance).Y + 25;

                // L.Stroke = System.Windows.Media.Brushes.Green;
                // L.StrokeThickness = 4;
                //L.IsHitTestVisible = false;
                //L.Fill = System.Windows.Media.Brushes.Green;
                //L.Opacity = 1;

                //Arena.instance.Children.Add(L);
                //PathLines.Enqueue(L);

            
            }
            p0 = backtrace.CenterPoint;//.TranslatePoint(new Point(21.65, 25), Arena.instance);
            p1 = Prev1.CenterPoint;//.TranslatePoint(new Point(21.65, 25), Arena.instance);

            ppa = new Point((p0.X + p1.X) / 2, (p0.Y + p1.Y) / 2);

            bs = new System.Windows.Media.BezierSegment(p1, p1, ppa, true);
            pf.Segments.Add(bs);

            return pf;
        }
        public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
        {
            var x1 = point.X - Size/2f;
            var x2 = point.X - Size/4f;
            var x3 = point.X + Size/4f;
            var x4 = point.X + Size/2f;

            var y1 = point.Y - Size/2f;
            var y2 = point.Y - Size/4f;
            var y3 = point.Y + Size/4f;
            var y4 = point.Y + Size/2f;

            var figure = new WpfPathFigure {StartPoint = new WpfPoint(x2, y1)};
            var segment = new WpfPolyLineSegment();
            var points = segment.Points;
            points.Add(new WpfPoint(x3, y1));
            points.Add(new WpfPoint(x3, y2));
            points.Add(new WpfPoint(x4, y2));
            points.Add(new WpfPoint(x4, y3));
            points.Add(new WpfPoint(x3, y3));
            points.Add(new WpfPoint(x3, y4));
            points.Add(new WpfPoint(x2, y4));
            points.Add(new WpfPoint(x2, y3));
            points.Add(new WpfPoint(x1, y3));
            points.Add(new WpfPoint(x1, y2));
            points.Add(new WpfPoint(x2, y2));
            points.Add(new WpfPoint(x2, y1));

            figure.Segments.Add( segment);
            figure.IsClosed = true;
            figure.IsFilled = true;

            pathGeometry.Figures.Add(figure);
        }
 public override void AddShape(WpfPoint point, WpfPathGeometry pathGeometry)
 {
     var figure = new WpfPathFigure {StartPoint = new WpfPoint((point.X), (point.Y - Size*1/8))};
     var segment = new WpfPolyLineSegment();
     var pts = segment.Points;
     pts.Add(new WpfPoint((point.X + Size*2/8), (point.Y - Size/2)));
     pts.Add(new WpfPoint((point.X + Size/2), (point.Y - Size/2)));
     pts.Add(new WpfPoint((point.X + Size*1/8), (point.Y)));
     pts.Add(new WpfPoint((point.X + Size/2), (point.Y + Size/2)));
     pts.Add(new WpfPoint((point.X + Size*2/8), (point.Y + Size/2)));
     pts.Add(new WpfPoint((point.X), (point.Y + Size*1/8)));
     pts.Add(new WpfPoint((point.X - Size*2/8), (point.Y + Size/2)));
     pts.Add(new WpfPoint((point.X - Size/2), (point.Y + Size/2)));
     pts.Add(new WpfPoint((point.X - Size*1/8), (point.Y)));
     pts.Add(new WpfPoint((point.X - Size/2), (point.Y - Size/2)));
     pts.Add(new WpfPoint((point.X - Size*2/8),(point.Y - Size/2)));
     figure.Segments.Add(segment);
     figure.IsClosed = true;
     figure.IsFilled = true;
     pathGeometry.Figures.Add(figure);
 }
Example #23
0
 public System.Windows.Media.Geometry get_clip(double nx, double ny)
 {
     System.Windows.Media.Geometry v = null;
     if (vp is eq.gui.vg.VgPathRectangle)
     {
         double aw = vp.get_w(), ah = vp.get_h();
         if (aw > 0 && ah > 0)
         {
             var rect = new System.Windows.Media.RectangleGeometry();
             rect.Rect = new System.Windows.Rect(x + vp.get_x() - nx, y + vp.get_y() - ny, aw, ah);
             v         = rect;
         }
     }
     else if (vp is eq.gui.vg.VgPathRoundedRectangle)
     {
         var    vpr = vp as eq.gui.vg.VgPathRoundedRectangle;
         double aw = vpr.get_w(), ah = vpr.get_h(), rd = vpr.get_radius();
         if (aw > 0 && ah > 0 && rd > 0)
         {
             var rrect = new System.Windows.Media.RectangleGeometry();
             rrect.Rect    = new System.Windows.Rect(x + vp.get_x() - nx, y + vp.get_y() - ny, aw, ah);
             rrect.RadiusX = rd;
             rrect.RadiusY = rd;
             v             = rrect;
         }
     }
     else if (vp is eq.gui.vg.VgPathCircle)
     {
         var    vpc = vp as eq.gui.vg.VgPathCircle;
         double rd  = vpc.get_radius();
         if (rd > 0)
         {
             var circle = new System.Windows.Media.EllipseGeometry();
             circle.Center  = new System.Windows.Point(x + vpc.get_xc() - nx, y + vpc.get_yc() - ny);
             circle.RadiusX = rd;
             circle.RadiusY = rd;
             v = circle;
         }
     }
     else if (vp is eq.gui.vg.VgPathCustom)
     {
         var cp     = vp as eq.gui.vg.VgPathCustom;
         var itr    = cp.iterate();
         var pg     = new System.Windows.Media.PathGeometry();
         var figure = new System.Windows.Media.PathFigure()
         {
             StartPoint = new System.Windows.Point(x + cp.get_start_x() - nx, y + cp.get_start_y() - ny)
         };
         while (itr != null)
         {
             var vpe = itr.next() as eq.gui.vg.VgPathElement;
             if (vpe == null)
             {
                 break;
             }
             System.Windows.Media.PathSegment segment = null;
             if (vpe.get_operation() == eq.gui.vg.VgPathElement.OP_LINE)
             {
                 segment = new System.Windows.Media.LineSegment()
                 {
                     Point = new System.Windows.Point(x + vpe.get_x1() - nx, y + vpe.get_y1() - ny)
                 };
             }
             else if (vpe.get_operation() == eq.gui.vg.VgPathElement.OP_CURVE)
             {
                 segment = new System.Windows.Media.BezierSegment()
                 {
                     Point1 = new System.Windows.Point(x + vpe.get_x1() - nx, y + vpe.get_y1() - ny),
                     Point2 = new System.Windows.Point(x + vpe.get_x2() - nx, y + vpe.get_y2() - ny),
                     Point3 = new System.Windows.Point(x + vpe.get_x3() - ny, y + vpe.get_y3() - ny)
                 };
             }
             else if (vpe.get_operation() == eq.gui.vg.VgPathElement.OP_ARC)
             {
             }
             else
             {
                 eq.api.Log.eq_api_Log_error((eq.api.Object)eq.api.StringStatic.eq_api_StringStatic_for_strptr("Unknown path element encountered."), null, null);
             }
             if (segment != null)
             {
                 figure.Segments.Add(segment);
             }
         }
         pg.Figures.Add(figure);
         v = pg;
     }
     if (vt != null)
     {
         double scx = vt.get_scale_x(), scy = vt.get_scale_y();
         double rot = vt.get_rotate_angle();
         var    tg  = new System.Windows.Media.TransformGroup();
         if (scx != 1.0 || scy != 1.0)
         {
             var st = new System.Windows.Media.ScaleTransform()
             {
                 ScaleX = scx, ScaleY = scy
             };
             st.CenterX = v.Bounds.Width / 2;
             st.CenterY = v.Bounds.Height / 2;
             tg.Children.Add(st);
         }
         if (rot != 0.0)
         {
             var rt = new System.Windows.Media.RotateTransform()
             {
                 Angle = rot
             };
             rt.CenterX = v.Bounds.Width / 2;
             rt.CenterY = v.Bounds.Height / 2;
             tg.Children.Add(rt);
         }
         if (vt.get_flip_horizontal())
         {
             var fht = new System.Windows.Media.ScaleTransform()
             {
                 ScaleX = -1.0, ScaleY = scy
             };
             fht.CenterX = v.Bounds.Width / 2;
             tg.Children.Add(fht);
         }
         v.Transform = tg;
     }
     return(v);
 }
Example #24
0
        public void InnerTick(int Frame)
        {
            if (Health < 0)
            {
                Die(this);
                return;
            }

            Progress += 0.01;

            if (Progress < 0)
            {
                this.Visibility = Visibility.Hidden;
            }
            else
            {
                if (this.Visibility == Visibility.Hidden)
                {
                    this.Visibility = Visibility.Visible;
                    Arena.instance.AddToArena(this);
                }


                if (Progress >= .75)//|| NextCell != CurrentCell.ToTarget[Counter % CurrentCell.ToTarget.Count]
                {
                    PreviousCell = CurrentCell;

                    lock (CurrentCell.CreepsInCell)
                    {
                        CurrentCell.CreepsInCell.Remove(this);
                    }
                    CurrentCell = NextCell;
                    lock (CurrentCell.CreepsInCell) CurrentCell.CreepsInCell.Add(this);
                    if (CurrentCell.ToTarget.Count == 0)
                    {
                        // no prize for failure.
                        Bounty = 0;

                        // remove the creep from play.
                        Die(this);

                        if (Arena.instance.Lifes-- <= 0)
                        {
                            // Game Over.
                            //MessageBox.Show("Game Over");
                        }
                    }
                    else// if (CurrentCell.ToTarget.Count == 1)
                    {
                        // NextCell = CurrentCell.ToTarget[0];
                        //}
                        //else
                        //{

                        if ((Counter & 1) == 0)
                        {
                            Counter >>= 2;
                        }
                        else
                        {
                            Counter >>= 2;
                            Counter   = Counter | 1073741824;
                        }
                        NextCell = CurrentCell.ToTarget[Counter % CurrentCell.ToTarget.Count];
                    }
                    Progress -= 0.5;

                    // PERF:

                    // Generating Bezier's is expensive; some kind of cache...? or not generate per creep*per frame...

                    // should only be 30 possible curves
                    //

                    Track = new System.Windows.Media.PathGeometry();
                    System.Windows.Media.PathFigure pf = new System.Windows.Media.PathFigure();
                    pf.StartPoint = new Point(PreviousCell.CenterPoint.X, PreviousCell.CenterPoint.Y);
                    Point p0 = new Point(CurrentCell.CenterPoint.X, CurrentCell.CenterPoint.Y);
                    //Point p1 = new Point(CurrentCell.CenterPoint.X, CurrentCell.CenterPoint.Y);
                    Point ppa = new Point(NextCell.CenterPoint.X, NextCell.CenterPoint.Y);
                    //System.Windows.Media.BezierSegment bs;
                    //bs = ;
                    pf.Segments.Add(new System.Windows.Media.BezierSegment(p0, p0, ppa, true));
                    Track.Figures.Add(pf);
                    //CreepTrack.Data = Track;
                    //CreepTrack.Stroke = System.Windows.Media.Brushes.Blue;
                    //CreepTrack.StrokeThickness = .5;
                    //CreepTrack.IsHitTestVisible = false;
                    //Arena.instance.AddToArena(CreepTrack);
                }



                Point op;
                Point ta;

                //Track.GetPointAtFractionLength((1 / Arena.instance.TrackLength) * (Progress), out op, out ta);

                //once/if I have a bezier cache, maybe cache the point-at-fraction-lenghts?
                if (Track != null)
                {
                    Track.GetPointAtFractionLength((Progress), out op, out ta);


                    XPos = (float)op.X;
                    YPos = (float)op.Y;
                    SetValue(System.Windows.Controls.Canvas.LeftProperty, op.X);
                    SetValue(System.Windows.Controls.Canvas.TopProperty, op.Y);

                    // this.RenderTransformOrigin = new Point(0, 0);
                    //this.RenderTransform = null;

                    //this.RenderTransform = new System.Windows.Media.RotateTransform(Math.Atan2(ta.Y, ta.X) * 180 / Math.PI, 0, 0);
                }

                System.Windows.Media.Brush B = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromRgb((byte)((Health / MaxHealth) * 255), 0, 0));
                Stroke = B;
                this.InvalidateVisual();
            }
        }