Пример #1
0
        public static PathGeometry[] ConvertToPathGeometries(SceneElement element)
        {
            if (!PathConversionHelper.CanConvert(element))
            {
                return(new PathGeometry[0]);
            }
            object              platformSpecificObject = element.ViewObject.PlatformSpecificObject;
            ITypeId             type     = (ITypeId)element.ViewObject.GetIType((ITypeResolver)element.ProjectContext);
            List <PathGeometry> pathList = new List <PathGeometry>();

            if (PlatformTypes.Shape.IsAssignableFrom(type))
            {
                PathGeometry pathGeometry = PathConversionHelper.SimplifyGeometry(element.ViewModel.DefaultView.GetRenderedGeometryAsWpf(element), true, ProjectNeutralTypes.PrimitiveShape.IsAssignableFrom((ITypeId)element.Type));
                pathList.Add(pathGeometry);
            }
            else if (platformSpecificObject is TextBlock)
            {
                TextBlock textBlock = platformSpecificObject as TextBlock;
                if (!textBlock.IsArrangeValid)
                {
                    textBlock.UpdateLayout();
                }
                PathConversionHelper.ConvertTextRangeToGeometry(new TextRange(textBlock.ContentStart, textBlock.ContentEnd), textBlock.FlowDirection, pathList);
            }
            else if (platformSpecificObject is RichTextBox)
            {
                PathConversionHelper.ConvertRichTextBoxToGeometry(platformSpecificObject as RichTextBox, pathList);
            }
            else if (platformSpecificObject is TextBox)
            {
                PathConversionHelper.ConvertTextBoxToGeometry(platformSpecificObject as TextBox, pathList);
            }
            else
            {
                PathConversionHelper.ConvertToPathGeometriesViaProxy(element as BaseFrameworkElement, pathList);
            }
            return(pathList.ToArray());
        }
Пример #2
0
        private static void ConvertFormattedTextToGeometry(FormattedText formattedText, Point origin, List <PathGeometry> pathList)
        {
            PathGeometry pathGeometry = PathConversionHelper.SimplifyGeometry(formattedText.BuildGeometry(origin), false, false);

            pathList.Add(pathGeometry);
        }