Esempio n. 1
0
 public static object GetChild(object source, int index)
 {
     if (DXMethods.IsChrome(source))
     {
         return(DXMethods.GetRoot(source));
     }
     if (DXMethods.IsIFrameworkRenderElementContext(source))
     {
         var control = DXMethods.Is(source, "RenderControlBaseContext", "DevExpress.Xpf.Core.Native", false) ? ((dynamic)source).Control : null;
         var rcc     = DXMethods.RenderChildrenCount(source);
         if (index >= rcc)
         {
             if (index == rcc && control != null)
             {
                 return(control);
             }
             return(null);
         }
         return(DXMethods.GetRenderChild(source, index));
     }
     if (source is Visual)
     {
         return(VisualTreeHelper.GetChild((Visual)source, index));
     }
     return(null);
 }
Esempio n. 2
0
 public FREDrawingVisual(object context)
 {
     this.context = context;
     using (var dc = this.RenderOpen()) {
         DXMethods.Render(((dynamic)context).Factory, dc, context);
         var controls = new object[] { context }.Concat(RenderTreeHelper.RenderDescendants(context));
         foreach (object ctrl in controls)
         {
             if (!DXMethods.Is(ctrl, "RenderControlBaseContext", null, false))
             {
                 continue;
             }
             var dctrl = ((dynamic)ctrl);
             dc.PushTransform((dctrl).GeneralTransform);
             dc.DrawRectangle(new VisualBrush((dctrl).Control), null, new Rect(new Point(0, 0), (dctrl).RenderSize));
             dc.Pop();
         }
         dc.Close();
     }
 }
Esempio n. 3
0
 public static int GetChildrenCount(object source)
 {
     if (DXMethods.IsChrome(source))
     {
         object root = DXMethods.GetRoot(source);
         if (root != null)
         {
             return(1);
         }
     }
     if (DXMethods.IsIFrameworkRenderElementContext(source))
     {
         int hasControl = DXMethods.Is(source, "RenderControlBaseContext", "DevExpress.Xpf.Core.Native", false) && ((dynamic)source).Control != null ? 1 : 0;
         return(DXMethods.RenderChildrenCount(source) + hasControl);
     }
     if (source is Visual)
     {
         return(VisualTreeHelper.GetChildrenCount((Visual)source));
     }
     return(0);
 }