public FREDrawingVisual(object c) { this.context = c.Wrap <IFrameworkRenderElementContext>(); using (var dc = RenderOpen()) { context.Render(dc); var controls = new[] { context }.Concat(RenderTreeHelper.RenderDescendants(context)); foreach (var ctrl in controls) { var rcbc = ctrl.Wrap <IRenderControlBaseContext>(); if (rcbc == null) { continue; } dc.PushTransform(rcbc.GeneralTransform); dc.DrawRectangle(new VisualBrush(rcbc.Control), null, new Rect(new Point(0, 0), rcbc.RenderSize)); dc.Pop(); } dc.Close(); } }
static bool isVisible(IFrameworkRenderElementContext context) { return(context.Visibility.HasValue ? context.Visibility == Visibility.Visible : context.Factory.Visibility == Visibility.Visible); }
public static bool IsVisible(IFrameworkRenderElementContext context) { return(isVisible(context) && context.ElementHost != null && RenderTreeHelper.RenderAncestors(context).Select(x => x.Wrap <IFrameworkRenderElementContext>()).All(x => isVisible(x))); }