//private BitmapDrawable GetDrawable(string imageEntryImage) //{ // int resID = Resources.GetIdentifier(imageEntryImage, "drawable", this.Context.PackageName); // var drawable = ContextCompat.GetDrawable(this.Context, resID); // var bitmap = ((BitmapDrawable)drawable).Bitmap; // return new BitmapDrawable(Resources, Bitmap.CreateScaledBitmap(bitmap, element.ImageWidth * 2, element.ImageHeight * 2, true)); //} //protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) //{ // base.OnElementPropertyChanged(sender, e); // if (Control == null) return; //// this.Control.SetRawInputType(InputTypes.ClassText); // //GradientDrawable gd = new GradientDrawable(); // //gd.SetColor(global::Android.Graphics.Color.Transparent); // //this.Control.SetBackgroundDrawable(gd); // //this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions); // //Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.White)); // //if (e.PropertyName == CustomEntry.IsBorderErrorVisibleProperty.PropertyName) // // UpdateBorders(); //} #region Utility methods private void UpdateBackground(CustomEntry entryEx) { if (_renderer != null) { _renderer.Dispose(); _renderer = null; } _renderer = new BorderRenderer(); Control.Background = _renderer.GetBorderBackground(entryEx.BorderColor, entryEx.BackgroundColor, entryEx.BorderWidth, entryEx.BorderRadius); }
internal static void Draw(Graphics graphics, Pen pen, Rectangle rect, Color backColor, ControlStyle controlStyle) { // Fill the ellipse . In this case reduce the height and width of rect by 1 so that it is painted filled only inside the border graphics.FillEllipse(SolidBrushCache.GetInstance().Get(backColor), new Rectangle(rect.Left, rect.Top, rect.Width - 1, rect.Height - 1)); // Draw border if (rect.Width > 1 && rect.Height > 1) { BorderRenderer.DrawEllipseBorder(graphics, pen, rect, controlStyle); } }
void Start() { // Disable the pointer graphic (until the user holds down on the touchpad) //if(Pointer!= null) Pointer.enabled = false; // Ensure we mark the player as not teleporting CurrentTeleportState = TeleportState.None; // Standard plane mesh used for "fade out" graphic when you teleport // This way you don't need to supply a simple plane mesh in the inspector PlaneMesh = new Mesh(); Vector3[] verts = new Vector3[] { new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0), new Vector3(1, -1, 0) }; int[] elts = new int[] { 0, 1, 2, 0, 2, 3 }; PlaneMesh.vertices = verts; PlaneMesh.triangles = elts; PlaneMesh.RecalculateBounds(); // Set some standard variables MaterialFadeID = Shader.PropertyToID("_Fade"); EnabledAnimatorID = Animator.StringToHash("Enabled"); RoomBorder = GetComponent <BorderRenderer>(); Vector3 p0, p1, p2, p3; if (GetChaperoneBounds(out p0, out p1, out p2, out p3)) { // Rotate to match camera rig rotation var originRotationMatrix = Matrix4x4.TRS(Vector3.zero, OriginTransform.rotation, Vector3.one); BorderPointSet p = new BorderPointSet(new Vector3[] { originRotationMatrix *p0, originRotationMatrix *p1, originRotationMatrix *p2, originRotationMatrix *p3, originRotationMatrix *p0, }); RoomBorder.Points = new BorderPointSet[] { p }; } RoomBorder.enabled = false; }
public void Render(D2D.RenderTarget renderTarget, FrameworkElement rootElement, FrameworkElement fe) { var textBlock = fe as TextBlock; if (textBlock != null) { TextBlockRenderer.Render(this, renderTarget, rootElement, textBlock); return; } var rectangle = fe as Rectangle; if (rectangle != null) { RectangleRenderer.Render(this, renderTarget, rootElement, rectangle); return; } var border = fe as Border; if (border != null) { BorderRenderer.Render(this, renderTarget, rootElement, border); return; } var ellipse = fe as Ellipse; if (ellipse != null) { EllipseRenderer.Render(this, renderTarget, rootElement, ellipse); return; } var line = fe as Line; if (line != null) { LineRenderer.Render(this, renderTarget, rootElement, line); return; } var path = fe as Path; if (path != null) { PathRenderer.Render(this, renderTarget, rootElement, path); return; } FrameworkElementRenderer.Render(this, renderTarget, rootElement, fe); }
/// <summary> /// draw border /// </summary> /// <param name="graphics"></param> /// <param name="Pen"></param> /// <param name="borderSize"></param> /// <param name="rect"></param> public void DrawBorder(Graphics graphics, Pen Pen, int borderSize, Rectangle rect, bool rightToLeft) { // back up the original properties float originalwidth = Pen.Width; PenAlignment originalAlignment = Pen.Alignment; Pen.Width = borderSize; Pen.Alignment = PenAlignment.Inset; BorderRenderer.PaintBorder(graphics, Pen, rect, ControlStyle.TwoD, true); // restore the original properties Pen.Width = originalwidth; Pen.Alignment = originalAlignment; }
/// <summary> /// draw border /// </summary> /// <param name="graphics"></param> /// <param name="Pen"></param> /// <param name="borderSize"></param> /// <param name="rect"></param> public void DrawBorder(Graphics graphics, Pen Pen, int borderSize, Rectangle rect, bool rightToLeft) { // back up the original properties float originalwidth = Pen.Width; PenAlignment originalAlignment = Pen.Alignment; Pen.Alignment = PenAlignment.Inset; // draw_3d_rect (Gui, hDC, &Rect, TRUE); BorderRenderer.PaintBorder(graphics, Pen, rect, ControlStyle.ThreeDSunken, true); // InflateRect (&Rect, -factor, -factor); rect.Inflate(-1, -1); // Gui->ctx->gui_.dc_->frame_rect (&Rect, FIX_SYS_COLOR_BTNTEXT, 1, 0L); BorderRenderer.PaintBorder(graphics, SystemPens.ControlText, rect, ControlStyle.TwoD, true); Pen.Alignment = originalAlignment; }
void Start() { if (SelectableMesh == null) { SelectableMesh = new Mesh(); } if (_SelectableMeshBorder == null) { _SelectableMeshBorder = new BorderPointSet[0]; } Border = GetComponent <BorderRenderer>(); Border.Points = SelectableMeshBorder; AlphaShaderID = Shader.PropertyToID("_Alpha"); #if UNITY_EDITOR UnityEditor.SceneView.RepaintAll(); #endif }
void Start() { // Disable the pointer graphic (until the user holds down on the touchpad) Pointer.enabled = false; // Standard plane mesh used for "fade out" graphic when you teleport // This way you don't need to supply a simple plane mesh in the inspector PlaneMesh = new Mesh(); Vector3[] verts = new Vector3[] { new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0), new Vector3(1, -1, 0) }; int[] elts = new int[] { 0, 1, 2, 0, 2, 3 }; PlaneMesh.vertices = verts; PlaneMesh.triangles = elts; PlaneMesh.RecalculateBounds(); // Set some standard variables MaterialFadeID = Shader.PropertyToID("_Fade"); EnabledAnimatorID = Animator.StringToHash("Enabled"); RoomBorder = GetComponent <BorderRenderer>(); Vector3 p0, p1, p2, p3; if (GetChaperoneBounds(out p0, out p1, out p2, out p3)) { BorderPointSet p = new BorderPointSet(new Vector3[] { p0, p1, p2, p3, p0 }); RoomBorder.Points = new BorderPointSet[] { p }; } RoomBorder.enabled = false; }
/// <summary> /// Paint the border excluding clip rectangle of Group Box control. /// </summary> /// <param name="g"></param> /// <param name="bounds"></param> /// <param name="pen"></param> /// <param name="controlStyle"></param> /// <param name="textRect"></param> /// <param name="font"></param> /// <param name="keepTopBorderMargin"></param> internal static void DrawBorder(Graphics g, Rectangle bounds, Pen pen, ControlStyle controlStyle, Rectangle textRect, Font font, bool keepTopBorderMargin) { if (!keepTopBorderMargin) { // adjust the border according to text rectangle. bounds.Y += textRect.Height / 2; bounds.Height -= textRect.Height / 2; } else { // adjust the border according to font height. bounds.Y += font.Height / 2; bounds.Height -= font.Height / 2; } Region originalClip = g.Clip; g.ExcludeClip(textRect); // Don't draw border in text area BorderRenderer.PaintBorder(g, pen, bounds, controlStyle, true); g.Clip = originalClip; // reset original clip }
/// <summary> /// draw image /// </summary> /// <param name="gr"></param> /// <param name="displayRect"></param> internal void drawImage(Graphics gr, Rectangle displayRect) { bool hasBorder = Style == ControlStyle.TwoD || Style == ControlStyle.ThreeDSunken; setBackgroundImage(displayRect); if (DisplayImage != null) { #if !PocketPC if (ImageAnimator.CanAnimate(DisplayImage)) { AnimateImage(); } #endif using (Region imageRegion = new Region(displayRect)) { Region r = gr.Clip; gr.Clip = imageRegion; Size size = ImageUtils.ImageSize(DisplayImage, ImageStyle, displayRect.Size, false); Rectangle rect = new Rectangle(displayRect.X, displayRect.Y, size.Width, size.Height); if (hasBorder) { rect.X++; rect.Y++; } #if !PocketPC //tmp gr.DrawImage(DisplayImage, rect); #else // This is probably what the original call is doing - need to verify gr.DrawImage(DisplayImage, displayRect.X, displayRect.Y); #endif gr.Clip = r; } } BorderRenderer.PaintBorder(gr, displayRect, FgColor, Style, false); }
/// <summary> /// /// </summary> /// <param name="type"></param> /// <param name="sender"></param> /// <param name="e"></param> internal override void handleEvent(EventType type, Object sender, EventArgs e) { MapData mapData = ControlsMap.getInstance().getMapData(sender); if (mapData == null) { return; } Object guiMgObject = mapData.getControl(); if (guiMgObject == null) { guiMgObject = mapData.getForm(); } var contextIDGuard = new Manager.ContextIDGuard(Manager.GetContextID(guiMgObject)); try { switch (type) { #if !PocketPC case EventType.SCROLL: { if (sender is ScrollableControl) { ScrollableControl scrollableControl = sender as ScrollableControl; TagData tg = (TagData)scrollableControl.Tag; if (scrollableControl.BackgroundImage != null) { scrollableControl.Invalidate(); } else { //This is a.Net bug. When scrollbar gets hidden during the process of thumb drag, framework still keeps //a rectangular bar visible to keep dragging on. Now, this rectangle is not removed even when the scrolling is stopped. //The workaround is to repaint the form if scrollbar is not present on the form when scroll dragging is stopped. ScrollEventArgs se = (ScrollEventArgs)e; if (se.Type == ScrollEventType.ThumbPosition) { bool hasVerticalScrollBar = scrollableControl.AutoScrollMinSize.Height > scrollableControl.ClientSize.Height; if (!hasVerticalScrollBar) { scrollableControl.Invalidate(); } } } } } break; #endif case EventType.RESIZE: onResize((Control)sender); break; } DefaultContainerHandler.getInstance().handleEvent(type, sender, e); #if PocketPC // paint the subform's border. Do it after the controls are painted, so we can paint over them. if (type == EventType.PAINT && ((MgPanel)sender).BorderStyle != BorderStyle.None) { BorderRenderer.PaintBorder(((PaintEventArgs)e).Graphics, ((Control)sender).ClientRectangle, Color.Black, ControlStyle.Windows, false); } #endif } finally { contextIDGuard.Dispose(); } }
void Start() { // Disable the pointer graphic (until the user holds down on the touchpad) Pointer.enabled = false; // Standard plane mesh used for "fade out" graphic when you teleport // This way you don't need to supply a simple plane mesh in the inspector PlaneMesh = new Mesh(); Vector3[] verts = new Vector3[] { new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0), new Vector3(1, -1, 0) }; int[] elts = new int[] { 0, 1, 2, 0, 2, 3 }; PlaneMesh.vertices = verts; PlaneMesh.triangles = elts; PlaneMesh.RecalculateBounds(); // Set some standard variables MaterialFadeID = Shader.PropertyToID("_Fade"); EnabledAnimatorID = Animator.StringToHash("Enabled"); RoomBorder = GetComponent<BorderRenderer>(); Vector3 p0, p1, p2, p3; if (GetChaperoneBounds(out p0, out p1, out p2, out p3)) { BorderPointSet p = new BorderPointSet(new Vector3[] { p0, p1, p2, p3, p0 }); RoomBorder.Points = new BorderPointSet[] { p }; } RoomBorder.enabled = false; }
public async Task Render(D2D.RenderTarget renderTarget, FrameworkElement rootElement, FrameworkElement fe) { var textBlock = fe as TextBlock; if (textBlock != null) { await TextBlockRenderer.Render(this, renderTarget, rootElement, textBlock); return; } var rectangle = fe as Jupiter.Shapes.Rectangle; if (rectangle != null) { await RectangleRenderer.Render(this, renderTarget, rootElement, rectangle); return; } var border = fe as Border; if (border != null) { await BorderRenderer.Render(this, renderTarget, rootElement, border); return; } var image = fe as Image; if (image != null) { await ImageRenderer.Render(this, renderTarget, rootElement, image); return; } var ellipse = fe as Ellipse; if (ellipse != null) { #pragma warning disable 4014 EllipseRenderer.Render(this, renderTarget, rootElement, ellipse); #pragma warning restore 4014 return; } var line = fe as Line; if (line != null) { await LineRenderer.Render(this, renderTarget, rootElement, line); return; } var path = fe as Jupiter.Shapes.Path; if (path != null) { await PathRenderer.Render(this, renderTarget, rootElement, path); return; } await FrameworkElementRenderer.Render(this, renderTarget, rootElement, fe); }
void Start() { if (SelectableMesh == null) SelectableMesh = new Mesh(); if (_SelectableMeshBorder == null) _SelectableMeshBorder = new BorderPointSet[0]; Border = GetComponent<BorderRenderer>(); Border.Points = SelectableMeshBorder; AlphaShaderID = Shader.PropertyToID("_Alpha"); #if UNITY_EDITOR UnityEditor.SceneView.RepaintAll(); #endif }
void OnValidate() { Border = GetComponent<BorderRenderer>(); Border.Points = SelectableMeshBorder; if(AlphaShaderID == -1) AlphaShaderID = Shader.PropertyToID("_Alpha"); }