Exemple #1
0
        /// <summary>
        /// Create a label renderer.
        /// </summary>
        /// <param name="maxCharCount">Max char count to display for this label. Careful to set this value because greater <paramref name="maxCharCount"/> means more space ocupied in GPU nemory.</param>
        /// <param name="labelHeight">Label height(in pixels)</param>
        /// <param name="fontTexture">Use which font to render text?</param>
        /// <returns></returns>
        public static LabelRenderer Create(int maxCharCount = 64, int labelHeight = 32, IFontTexture fontTexture = null)
        {
            if (fontTexture == null) { fontTexture = FontTexture.Default; }

            var model = new TextModel(maxCharCount);

            var shaderCodes = new ShaderCode[2];
            shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                @"Resources\Label.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                @"Resources\Label.frag"), ShaderType.FragmentShader);

            var map = new AttributeMap();
            map.Add("in_Position", TextModel.strPosition);
            map.Add("in_UV", TextModel.strUV);

            var blendState = new BlendState(BlendingSourceFactor.SourceAlpha, BlendingDestinationFactor.One);

            var renderer = new LabelRenderer(model, shaderCodes, map, blendState);
            renderer.blendState = blendState;
            renderer.fontTexture = fontTexture;
            renderer.LabelHeight = labelHeight;

            return renderer;
        }
Exemple #2
0
        /// <summary>
        /// Create a label renderer.
        /// </summary>
        /// <param name="maxCharCount">Max char count to display for this label. Careful to set this value because greater <paramref name="maxCharCount"/> means more space ocupied in GPU nemory.</param>
        /// <param name="labelHeight">Label height(in pixels)</param>
        /// <param name="fontTexture">Use which font to render text?</param>
        /// <returns></returns>
        public static LabelRenderer Create(int maxCharCount = 64, int labelHeight = 32, IFontTexture fontTexture = null)
        {
            if (fontTexture == null)
            {
                fontTexture = FontTexture.Default;
            }

            var model = new TextModel(maxCharCount);

            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources\Label.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(ManifestResourceLoader.LoadTextFile(
                                                @"Resources\Label.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("in_Position", TextModel.strPosition);
            map.Add("in_UV", TextModel.strUV);

            var blendState = new BlendState(BlendingSourceFactor.SourceAlpha, BlendingDestinationFactor.One);

            var renderer = new LabelRenderer(model, provider, map, blendState);

            renderer.blendState  = blendState;
            renderer.fontTexture = fontTexture;
            renderer.LabelHeight = labelHeight;

            return(renderer);
        }
    private void Start()
    {
        raycaster     = GlobalObject.Get <TerrainRaycaster>();
        labelRenderer = GlobalObject.Get <LabelRenderer>();
        terrain       = GlobalObject.Get <TerrainManager>();
        mainCam       = GetComponentInChildren <Camera>();

        Yrotation = transform.rotation.eulerAngles.x;
    }
 private void Form_Load(object sender, EventArgs e)
 {
     {
         var camera = new Camera(
             new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
             CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
         var rotator = new SatelliteManipulater();
         rotator.Bind(camera, this.glCanvas1);
         this.scene             = new Scene(camera, this.glCanvas1);
         this.scene.ClearColor  = Color.SkyBlue;
         this.glCanvas1.Resize += this.scene.Resize;
     }
     {
         const int gridsPer2Unit = 20;
         const int scale         = 2;
         var       ground        = GroundRenderer.Create(new GroundModel(gridsPer2Unit * scale));
         ground.Scale = new vec3(scale, scale, scale);
         var obj = new SceneObject();
         obj.Renderer = ground;
         this.scene.RootObject.Children.Add(obj);
     }
     {
         SimpleRenderer movableRenderer = SimpleRenderer.Create(new Teapot());
         movableRenderer.RotationAxis = new vec3(0, 1, 0);
         movableRenderer.Scale        = new vec3(0.1f, 0.1f, 0.1f);
         this.movableRenderer         = movableRenderer;
         SceneObject obj = movableRenderer.WrapToSceneObject();
         this.scene.RootObject.Children.Add(obj);
     }
     {
         BillboardRenderer billboardRenderer = BillboardRenderer.Create(new BillboardModel());
         SceneObject       obj = billboardRenderer.WrapToSceneObject(new UpdateBillboardPosition(movableRenderer));
         this.scene.RootObject.Children.Add(obj);
     }
     {
         LabelRenderer labelRenderer = LabelRenderer.Create();
         labelRenderer.Text = "Teapot - CSharpGL";
         SceneObject obj = labelRenderer.WrapToSceneObject(new UpdateLabelPosition(movableRenderer));
         this.scene.RootObject.Children.Add(obj);
     }
     {
         var uiAxis = new UIAxis(AnchorStyles.Left | AnchorStyles.Bottom,
                                 new Padding(3, 3, 3, 3), new Size(128, 128));
         this.scene.RootUI.Children.Add(uiAxis);
     }
     {
         var frmPropertyGrid = new FormProperyGrid(this.scene);
         frmPropertyGrid.Show();
     }
     {
         var frmPropertyGrid = new FormProperyGrid(this.glCanvas1);
         frmPropertyGrid.Show();
     }
     {
         this.scene.Start();
     }
 }
        protected override void DoUpdate()
        {
            if (this.renderer == null)
            {
                this.renderer = this.BindingObject.Renderer as LabelRenderer;
            }

            //this.transform.Position = this.TargetTransform.Position + new vec3(0, 1, 0);
            vec3 worldPosition = this.TargetRenderer.WorldPosition + new vec3(0, 0.3f, 0);
            this.renderer.WorldPosition = worldPosition;
        }
Exemple #6
0
        protected override void DoUpdate()
        {
            if (this.renderer == null)
            {
                this.renderer = this.BindingObject.Renderer as LabelRenderer;
            }

            //this.transform.Position = this.TargetTransform.Position + new vec3(0, 1, 0);
            vec3 worldPosition = this.TargetRenderer.WorldPosition + new vec3(0, 0.3f, 0);

            this.renderer.WorldPosition = worldPosition;
        }
Exemple #7
0
        public static NamedWellRenderer Create(WellModel model, Color wellColor, string name = "", int maxCharCount = 64, int labelHeight = 32, IFontTexture fontTexture = null)
        {
            WellRenderer well = WellRenderer.Create(model);

            well.WellColor = wellColor;
            LabelRenderer label = new LabelRenderer(maxCharCount, labelHeight, fontTexture);

            label.Text = name;
            var renderer = new NamedWellRenderer(well, label);

            return(renderer);
        }
Exemple #8
0
        protected override void DoUpdate(double elapsedTime)
        {
            if (this.renderer == null)
            {
                this.renderer = this.BindingObject.Renderer as LabelRenderer;
            }

            //this.transform.Position = this.TargetTransform.Position + new vec3(0, 1, 0);
            vec3 worldPosition = this.TargetRenderer.Position + new vec3(0, 0.3f, 0);

            this.renderer.SetPosition(worldPosition);
        }
Exemple #9
0
 protected override void DoRender(RenderEventArgs arg)
 {
     {
         WellRenderer renderer = this.wellRenderer;
         if (renderer != null)
         {
             renderer.Render(arg);
         }
     }
     {
         LabelRenderer renderer = this.nameRenderer;
         if (renderer != null)
         {
             renderer.Render(arg);
         }
     }
 }
Exemple #10
0
 protected override void DoInitialize()
 {
     {
         WellRenderer renderer = this.wellRenderer;
         if (renderer != null)
         {
             renderer.Initialize();
         }
     }
     {
         LabelRenderer renderer = this.nameRenderer;
         if (renderer != null)
         {
             renderer.Initialize();
         }
     }
 }
Exemple #11
0
        protected override void DisposeUnmanagedResources()
        {
            {
                WellRenderer renderer = this.wellRenderer;
                if (renderer != null)
                {
                    renderer.Dispose();
                }
            }
            {
                LabelRenderer renderer = this.nameRenderer;
                if (renderer != null)
                {
                    renderer.Dispose();
                }
            }

            base.DisposeUnmanagedResources();
        }
Exemple #12
0
 private void Form_Load(object sender, EventArgs e)
 {
     {
         this.glCanvas1.ShowSystemCursor = false;
     }
     {
         var camera = new Camera(
             new vec3(0, 0, 1), new vec3(0, 0, 0), new vec3(0, 1, 0),
             CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
         var rotator = new SatelliteManipulater();
         rotator.Bind(camera, this.glCanvas1);
         this.rotator           = rotator;
         this.scene             = new Scene(camera, this.glCanvas1);
         this.glCanvas1.Resize += this.scene.Resize;
     }
     {
         var labelRenderer = new LabelRenderer(1000, 640);
         labelRenderer.Text = "LABEL 1";
         labelRenderer.Initialize();
         labelRenderer.SetPosition(new vec3(1, 0, 0));
         SceneObject obj = labelRenderer.WrapToSceneObject("label 1");
         this.scene.RootObject.Children.Add(obj);
         this.blendSwitch1   = labelRenderer.SwitchList.Find(x => x is BlendSwitch) as BlendSwitch;
         this.labelRenderer1 = labelRenderer;
     }
     {
         var labelRenderer = new LabelRenderer(1000, 640);
         labelRenderer.Text = "LABEL 2";
         labelRenderer.Initialize();
         labelRenderer.SetPosition(new vec3(-1, 0, 0));
         SceneObject obj = labelRenderer.WrapToSceneObject("label 2");
         this.scene.RootObject.Children.Add(obj);
         this.blendSwitch2   = labelRenderer.SwitchList.Find(x => x is BlendSwitch) as BlendSwitch;
         this.labelRenderer2 = labelRenderer;
     }
 }
Exemple #13
0
 /// <summary>
 /// renders well pipeline(several cylinders)
 /// </summary>
 /// <param name="model"></param>
 /// <param name="shaderCodes"></param>
 /// <param name="propertyNameMap"></param>
 /// <param name="switches"></param>
 private NamedWellRenderer(WellRenderer wellRenderer, LabelRenderer nameRenderer)
 {
     //this.ModelMatrix = mat4.identity();
     this.wellRenderer = wellRenderer;
     this.nameRenderer = nameRenderer;
 }
 /// <summary>
 /// Renders the supplied Label_t as XAML.
 /// </summary>
 /// <param name="control">Label_t to render.</param>
 public void Visit(Label_t control)
 {
     LabelRenderer.Render(_writer, control);
 }
Exemple #15
0
 public static void Init()
 {
     CheckBoxRenderer.InitRenderer();
     LabelRenderer.InitRenderer();
     CheckBoxCellRenderer.Init();
 }
Exemple #16
0
 public LabelRendererTests()
 {
     _labelRenderer = new LabelRenderer();
 }
        protected override CSharpGL.Tuple <WellRenderer, LabelRenderer> Convert(vec3 originalWorldPosition, TracyEnergy.Simba.Data.Keywords.impl.WellSpecs wellspec, TracyEnergy.Simba.Data.Keywords.impl.WellCompatCollection wellCompatList)
        {
            int locI = wellspec.Li;
            int locJ = wellspec.Lj;

            //if compat has position ,use compat
            List <WellCompat> segments = null;

            if (wellCompatList != null)
            {
                segments = wellCompatList.GetWellSegments(wellspec.WellName);
            }
            if (segments != null && segments.Count > 0)
            {
                locI = segments[0].PosI;
                locJ = segments[0].PosJ;
            }

            if (!this.grid.DataSource.IsSliceBlock(locI, locJ))
            {
                return(null);
            }

            vec3  h1 = this.grid.DataSource.PointFLT(locI, locJ, 1);
            vec3  h2 = this.grid.DataSource.PointBRT(locI, locJ, 1);
            vec3  d0 = h2 - h1;
            float L  = (float)d0.length();

            d0 = d0.normalize();
            vec3 vec   = d0 * (L * 0.5f);
            vec3 comp1 = CenterOfLine(h1, h2);;  //地层完井段的起始点

            //vec3 minCord = this.grid.FlipTransform * this.grid.SourceActiveBounds.Min;
            vec3        minCord  = this.grid.DataSource.SourceActiveBounds.Min;
            vec3        maxCord  = this.grid.DataSource.SourceActiveBounds.Max;
            Rectangle3D rectSrc  = new Rectangle3D(minCord, maxCord);
            vec3        modelTop = new vec3(comp1.x, comp1.y, rectSrc.Max.z);

            float mdx = rectSrc.SizeX;
            float mdy = rectSrc.SizeY;
            float mdz = rectSrc.SizeZ;

            float xyextend = System.Math.Max(mdx, mdy); //XY平面的最大边长
            float extHeight;                            //延长线段

            if (mdz < 0.1f * xyextend)                  //z很小
            {
                extHeight = 0.1f * xyextend;
            }
            else if (mdz < 0.2f * xyextend)
            {
                extHeight = mdz * 0.5f;
            }
            else if (mdz < 0.3f * xyextend)
            {
                extHeight = mdz * 0.25f;
            }
            else if (mdz < 0.4f * xyextend)
            {
                extHeight = mdz * 0.2f;
            }
            else
            {
                extHeight = 0.2f * mdz;
            }

            //地表坐标

            vec3 direction = new vec3(0, 0, 1.0f);
            vec3 head      = modelTop + direction * extHeight;

            //确定井的半径
            float wellRadius;

            #region decide the well radius
            if (mdx < mdy)
            {
                if (mdy * 0.5f >= mdx) //长方形的模型
                {
                    int n = this.grid.DataSource.NX;
                    if (n >= 10)
                    {
                        wellRadius = (mdx / n) * 0.5f;
                    }
                    else
                    {
                        wellRadius = (mdx / n) * 0.35f;
                    }
                }
                else
                {
                    int n = this.grid.DataSource.NX;
                    if (n >= 10)
                    {
                        n          = 10;
                        wellRadius = (mdx / n) * 0.5f;
                    }
                    else
                    {
                        wellRadius = (mdx / n) * 0.35f;
                    }
                }
            }
            else if (mdx == mdy)
            {
                int n = Math.Min(this.grid.DataSource.NX, this.grid.DataSource.NY);
                if (n >= 10)
                {
                    n          = 10;
                    wellRadius = (mdx / n) * 0.85f;
                }
                else
                {
                    wellRadius = (mdx / n) * 0.5f;
                }
            }
            else
            {
                if (mdx * 0.5f >= mdy)
                {
                    int n = this.grid.DataSource.NY;
                    if (n > 10)
                    {
                        n          = 10;
                        wellRadius = (mdy / n) * 0.5f;
                    }
                    else
                    {
                        wellRadius = (mdy / n) * 0.35f;
                    }
                }
                else
                {
                    int n = this.grid.DataSource.NY;
                    if (n > 10)
                    {
                        n          = 10;
                        wellRadius = (mdx / n) * 0.5f;
                    }
                    else
                    {
                        wellRadius = (mdx / n) * 0.35f;
                    }
                }
            }
            #endregion

            Fluid fluid     = FluidConverter.Convert(wellspec.Fluid);
            Color pipeColor = MapFluidToColor(fluid);
            Color textColor = Color.White;

            List <vec3> wellPath = new List <vec3>();
            wellPath.Add(head);
            wellPath.Add(modelTop);

            #region start decide the trajery of the well
            {
                int  lastI    = locI;
                int  lastJ    = locJ;
                int  lastK    = -1;
                vec3 lastvec3 = comp1;
                int  segCount = segments.Count;
                for (int i = 0; i < segCount; i++)
                {
                    WellCompat compseg = segments[i];
                    int        compI   = compseg.PosI;
                    int        compJ   = compseg.PosJ;
                    int        compK1  = compseg.K1;
                    int        compK2  = compseg.K2;
                    if (compK1 == compK2)//同一网格上
                    {
                        if ((lastI != compI) || (lastJ != compJ) || (lastK != compK1))
                        {
                            vec3 s1    = this.grid.DataSource.PointFLT(compI, compJ, compK1);
                            vec3 s2    = this.grid.DataSource.PointBRT(compI, compJ, compK1);
                            vec3 point = CenterOfLine(s1, s2);
                            wellPath.Add(point);
                            lastI = compI;
                            lastJ = compJ;
                            lastK = compK1;
                        }
                    }
                    else //compK1 != compK2
                    {
                        //k1 coord
                        if ((lastI != compI) || (lastJ != compJ) || (lastK != compK1))
                        {
                            vec3 s1    = this.grid.DataSource.PointFLT(compI, compJ, compK1);
                            vec3 s2    = this.grid.DataSource.PointBRT(compI, compJ, compK1);
                            vec3 point = CenterOfLine(s1, s2);
                            wellPath.Add(point);
                        }
                        lastI = compI;
                        lastJ = compJ;
                        lastK = compK1;

                        if ((lastI != compI) || (lastJ != compJ) || (lastK != compK2))
                        {
                            vec3 s1    = this.grid.DataSource.PointFLT(compI, compJ, compK2);
                            vec3 s2    = this.grid.DataSource.PointBRT(compI, compJ, compK2);
                            vec3 point = CenterOfLine(s1, s2);
                            wellPath.Add(point);
                        }
                        lastI = compI;
                        lastJ = compJ;
                        lastK = compK2;
                    }
                }//end for

                var model = new WellModel(wellPath, wellRadius);
                //NamedWellRenderer renderer = NamedWellRenderer.Create(model, pipeColor, wellspec.WellName, 12);
                WellRenderer wellRenderer = WellRenderer.Create(model);
                wellRenderer.WellColor = pipeColor;
                LabelRenderer labelRenderer = new LabelRenderer(64, 64);
                labelRenderer.Text = wellspec.WellName;
                var result = new CSharpGL.Tuple <WellRenderer, LabelRenderer>(wellRenderer, labelRenderer);
                return(result);
            }
            #endregion
        }
Exemple #18
0
        public async Task ReusingFrameRendererDoesCauseOverlapWithPreviousContent()
        {
            ContentPage page   = new ContentPage();
            Frame       frame1 = new Frame()
            {
                Content = new Label()
                {
                    Text = "I am frame 1"
                }
            };

            page.Content = frame1;

            await page.Dispatcher.DispatchAsync(() =>
            {
                using (var pageRenderer = GetRenderer(page))
                    using (var renderer = GetRenderer(frame1))
                    {
                        var frameRenderer = GetRenderer(frame1);

                        Frame frame2 = new Frame()
                        {
                            Content = new Label()
                            {
                                Text = "I am frame 2"
                            }
                        };

                        frameRenderer.SetElement(frame2);

                        Assert.AreEqual(1, frameRenderer.NativeView.Subviews.Length);
                        Assert.AreEqual(1, frameRenderer.NativeView.Subviews[0].Subviews.Length);

#pragma warning disable CS0612 // Type or member is obsolete
#pragma warning disable CS0618 // Type or member is obsolete
                        LabelRenderer labelRenderer = null;
#pragma warning restore CS0618 // Type or member is obsolete
#pragma warning restore CS0612 // Type or member is obsolete
                        var view = frameRenderer.NativeView;
                        Assert.AreEqual(1, view.Subviews.Length);

                        while (labelRenderer == null)
                        {
                            view = view.Subviews[0];
                            Assert.AreEqual(1, view.Subviews.Length);
#pragma warning disable CS0612 // Type or member is obsolete
#pragma warning disable CS0618 // Type or member is obsolete
                            labelRenderer = view as LabelRenderer;
#pragma warning restore CS0618 // Type or member is obsolete
#pragma warning restore CS0612 // Type or member is obsolete
                        }

                        var uILabel = (UILabel)labelRenderer.NativeView.Subviews[0];
                        Assert.AreEqual("I am frame 2", uILabel.Text);

                        Frame frameWithButton = new Frame()
                        {
                            Content = new Button()
                            {
                                Text = "I am a Button"
                            }
                        };

                        frameRenderer.SetElement(frameWithButton);

                        var uiButton = (UIButton)frameRenderer.NativeView.Subviews[0].Subviews[0].Subviews[0];
                        Assert.AreEqual("I am a Button", uiButton.Title(UIControlState.Normal));
                    }
            });
        }
Exemple #19
0
 private void Form_Load(object sender, EventArgs e)
 {
     {
         var camera = new Camera(
             new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
             CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
         var rotator = new SatelliteManipulater();
         rotator.Bind(camera, this.glCanvas1);
         this.scene             = new Scene(camera, this.glCanvas1);
         this.glCanvas1.Resize += this.scene.Resize;
     }
     {
         const int gridsPer2Unit = 20;
         const int scale         = 2;
         var       ground        = GroundRenderer.Create(new GroundModel(gridsPer2Unit * scale));
         ground.Scale = scale;
         //ground.Initialize();
         //this.ground = ground;
         var obj = new SceneObject();
         obj.Renderer = ground;
         this.scene.RootObject.Children.Add(obj);
     }
     //MovableRenderer movableRenderer;
     {
         movableRenderer = MovableRenderer.Create(new Teapot());
         //movableRenderer.Initialize();
         movableRenderer.Scale = 0.1f;
         var obj = new SceneObject();
         obj.Renderer = movableRenderer;
         this.scene.RootObject.Children.Add(obj);
     }
     {
         BillboardRenderer billboardRenderer = BillboardRenderer.GetRenderer(new BillboardModel());
         //billboardRenderer.Initialize();
         var obj = new SceneObject();
         obj.Renderer = billboardRenderer;
         var updatePosition = new UpdateBillboardPosition(movableRenderer);
         obj.ScriptList.Add(updatePosition);
         this.scene.RootObject.Children.Add(obj);
     }
     {
         var labelRenderer = new LabelRenderer();
         labelRenderer.Initialize();
         labelRenderer.Text = "Teapot - CSharpGL";
         SceneObject obj = labelRenderer.WrapToSceneObject(new UpdateLabelPosition(movableRenderer));
         this.scene.RootObject.Children.Add(obj);
     }
     {
         var uiAxis = new UIAxis(AnchorStyles.Left | AnchorStyles.Bottom,
                                 new Padding(3, 3, 3, 3), new Size(128, 128), -100, 100);
         //uiAxis.Initialize();
         this.scene.UIRoot.Children.Add(uiAxis);
     }
     {
         var frmPropertyGrid = new FormProperyGrid(this.scene);
         frmPropertyGrid.Show();
     }
     {
         var frmPropertyGrid = new FormProperyGrid(this.glCanvas1);
         frmPropertyGrid.Show();
     }
     {
         this.scene.Start();
     }
 }
Exemple #20
0
        public async Task ReusingFrameRendererDoesCauseOverlapWithPreviousContent()
        {
            await Device.InvokeOnMainThreadAsync(() =>
            {
                ContentPage page = new ContentPage();
                Frame frame1     = new Frame()
                {
                    Content = new Label()
                    {
                        Text = "I am frame 1"
                    }
                };

                page.Content = frame1;


                using (var pageRenderer = GetRenderer(page))
                    using (var renderer = GetRenderer(frame1))
                    {
                        var frameRenderer = GetRenderer(frame1);

                        Frame frame2 = new Frame()
                        {
                            Content = new Label()
                            {
                                Text = "I am frame 2"
                            }
                        };

                        frameRenderer.SetElement(frame2);

                        Assert.AreEqual(1, frameRenderer.NativeView.Subviews.Length);
                        Assert.AreEqual(1, frameRenderer.NativeView.Subviews[0].Subviews.Length);

                        LabelRenderer labelRenderer = null;
                        var view = frameRenderer.NativeView;
                        Assert.AreEqual(1, view.Subviews.Length);

                        while (labelRenderer == null)
                        {
                            view = view.Subviews[0];
                            Assert.AreEqual(1, view.Subviews.Length);
                            labelRenderer = view as LabelRenderer;
                        }

                        var uILabel = (UILabel)labelRenderer.NativeView.Subviews[0];
                        Assert.AreEqual("I am frame 2", uILabel.Text);

                        Frame frameWithButton = new Frame()
                        {
                            Content = new Button()
                            {
                                Text = "I am a Button"
                            }
                        };

                        frameRenderer.SetElement(frameWithButton);

                        var uiButton = (UIButton)frameRenderer.NativeView.Subviews[0].Subviews[0].Subviews[0];
                        Assert.AreEqual("I am a Button", uiButton.Title(UIControlState.Normal));
                    }
            });
        }
Exemple #21
0
 public LogHandler(ILogHandler original, LabelRenderer renderer)
 {
     labelRenderer = renderer;
     this.original = original;
 }
 public LabelRendererTests()
 {
     _labelRenderer = new LabelRenderer();
 }