当前位置: 首页>>代码示例>>C#>>正文


C# VisualStyleRenderer.DrawParentBackground方法代码示例

本文整理汇总了C#中System.Windows.Forms.VisualStyles.VisualStyleRenderer.DrawParentBackground方法的典型用法代码示例。如果您正苦于以下问题:C# VisualStyleRenderer.DrawParentBackground方法的具体用法?C# VisualStyleRenderer.DrawParentBackground怎么用?C# VisualStyleRenderer.DrawParentBackground使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Windows.Forms.VisualStyles.VisualStyleRenderer的用法示例。


在下文中一共展示了VisualStyleRenderer.DrawParentBackground方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DrawParentBackground

		public static void DrawParentBackground (Graphics g, Rectangle bounds, Control childControl)
		{
			if (!VisualStyleRenderer.IsSupported)
				return;
			
			VisualStyleRenderer vsr = new VisualStyleRenderer (VisualStyleElement.Button.GroupBox.Normal);

			vsr.DrawParentBackground (g, bounds, childControl);
		}
开发者ID:nlhepler,项目名称:mono,代码行数:9,代码来源:GroupBoxRenderer.cs

示例2: OnPaint

		/// <summary>
		/// Raises the <see cref="E:Paint"/> event.
		/// </summary>
		/// <param name="e"></param>
		protected override void OnPaint(PaintEventArgs e)
		{
			if (Application.RenderWithVisualStyles)
			{
				var renderer = new VisualStyleRenderer(VisualStyleElement.TextBox.TextEdit.Normal);
				renderer.DrawParentBackground(e.Graphics, ClientRectangle, this);
			}
			base.OnPaint(e);
		}
开发者ID:sillsdev,项目名称:FieldWorks,代码行数:13,代码来源:FwComboBox.cs

示例3: PaintButton

        protected override void PaintButton(Graphics graphics, Rectangle bounds)
        {
            if (Application.RenderWithVisualStyles || DesktopWindowManager.IsCompositionEnabled())
            {
                try
                {
                    VisualStyleRenderer rnd = new VisualStyleRenderer(StyleClass, StylePart, (int)ButtonState);
                    if (this.IsDesignMode() || !DesktopWindowManager.IsCompositionEnabled())
                    {
                        rnd.DrawParentBackground(graphics, this.Bounds, this);
                        rnd.DrawBackground(graphics, this.Bounds, bounds);
                    }
                    else
                    {
                        rnd.DrawGlassBackground(graphics, this.Bounds, bounds);
                    }
                    return;
                }
                catch { }
            }

            //base.PaintButton(graphics, bounds);
            Rectangle sr = this.ClientRectangle;
            sr.Offset(0, sr.Height * ((int)ButtonState - 1));
            graphics.Clear(this.Parent.BackColor);
            if (imageStrip != null)
                graphics.DrawImage(imageStrip, this.Bounds, sr, GraphicsUnit.Pixel);
            else
                using (Brush br = new SolidBrush(this.BackColor))
                    graphics.FillRectangle(br, sr);
        }
开发者ID:JohnThomson,项目名称:testBloom,代码行数:31,代码来源:ThemeImageButton.cs

示例4: PaintNonClientRegion

        private void PaintNonClientRegion(ref Message m)
        {
            IntPtr handle = Handle;

            NativeMethods.RECT windowRect;
            NativeMethods.GetWindowRect(handle, out windowRect);
            windowRect = new NativeMethods.RECT(
                0,
                0,
                windowRect.Right - windowRect.Left,
                windowRect.Bottom - windowRect.Top);

            using (var deviceContext = new NativeMethods.DeviceContext(handle))
            {
                var renderer = new VisualStyleRenderer(
                    Enabled
                        ? ReadOnly
                            ? VisualStyleElement.TextBox.TextEdit.ReadOnly
                            : VisualStyleElement.TextBox.TextEdit.Normal
                        : VisualStyleElement.TextBox.TextEdit.Disabled);

                int clipResult =
                    NativeMethods.ExcludeClipRect(
                        deviceContext.GetHdc(),
                        _borderRect.Left,
                        _borderRect.Top,
                        windowRect.Right - _borderRect.Right,
                        windowRect.Bottom - _borderRect.Bottom);

                if (clipResult == NativeMethods.SIMPLEREGION
                    || clipResult == NativeMethods.COMPLEXREGION)
                {
                    if (renderer.IsBackgroundPartiallyTransparent())
                        renderer.DrawParentBackground(deviceContext, windowRect.ToRectangle(), this);

                    renderer.DrawBackground(deviceContext, windowRect.ToRectangle());
                }
            }

            m.Result = IntPtr.Zero;
        }
开发者ID:tommy-carlier,项目名称:tc-libs,代码行数:41,代码来源:TTextControl.cs

示例5: WndProc

		protected override void WndProc(ref Message m)
		{
			const int WM_ERASEBKGND = 0x14;
			
			switch (m.Msg)
			{
				case WM_ERASEBKGND:
					if (Application.RenderWithVisualStyles)
					{
						VisualStyleRenderer rend = new VisualStyleRenderer(VisualStyleElement.TextBox.TextEdit.Normal);
						
						rend.DrawParentBackground(new DeviceContext(m.WParam), this.ClientRectangle, this);
						
						m.Result = (IntPtr)1;
						return;
					}
					break;
			}
			
			base.WndProc(ref m);
		}
开发者ID:pusp,项目名称:o2platform,代码行数:21,代码来源:PropertiesDialog.cs

示例6: PaintPriv

        private void PaintPriv(PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            if(g == null) { base.OnPaint(e); return; }

            int nNormPos = m_nPosition - m_nMinimum;
            int nNormMax = m_nMaximum - m_nMinimum;
            if(nNormMax <= 0) { Debug.Assert(false); nNormMax = 100; }
            if(nNormPos < 0) { Debug.Assert(false); nNormPos = 0; }
            if(nNormPos > nNormMax) { Debug.Assert(false); nNormPos = nNormMax; }

            Rectangle rectClient = this.ClientRectangle;
            Rectangle rectDraw;
            VisualStyleElement vse = VisualStyleElement.ProgressBar.Bar.Normal;
            if(VisualStyleRenderer.IsSupported &&
                VisualStyleRenderer.IsElementDefined(vse))
            {
                VisualStyleRenderer vsr = new VisualStyleRenderer(vse);

                if(vsr.IsBackgroundPartiallyTransparent())
                    vsr.DrawParentBackground(g, rectClient, this);

                vsr.DrawBackground(g, rectClient);

                rectDraw = vsr.GetBackgroundContentRectangle(g, rectClient);
            }
            else
            {
                g.FillRectangle(SystemBrushes.Control, rectClient);

                Pen penGray = SystemPens.ControlDark;
                Pen penWhite = SystemPens.ControlLight;
                g.DrawLine(penGray, 0, 0, rectClient.Width - 1, 0);
                g.DrawLine(penGray, 0, 0, 0, rectClient.Height - 1);
                g.DrawLine(penWhite, rectClient.Width - 1, 0,
                    rectClient.Width - 1, rectClient.Height - 1);
                g.DrawLine(penWhite, 0, rectClient.Height - 1,
                    rectClient.Width - 1, rectClient.Height - 1);

                rectDraw = new Rectangle(rectClient.X + 1, rectClient.Y + 1,
                    rectClient.Width - 2, rectClient.Height - 2);
            }

            int nDrawWidth = (int)((float)rectDraw.Width * (float)nNormPos /
                (float)nNormMax);

            Color clrStart = Color.FromArgb(255, 128, 0);
            Color clrEnd = Color.FromArgb(0, 255, 0);
            if(!this.Enabled)
            {
                clrStart = UIUtil.ColorToGrayscale(SystemColors.ControlDark);
                clrEnd = UIUtil.ColorToGrayscale(SystemColors.ControlLight);
            }

            bool bRtl = (this.RightToLeft == RightToLeft.Yes);
            if(bRtl)
            {
                Color clrTemp = clrStart;
                clrStart = clrEnd;
                clrEnd = clrTemp;
            }

            // Workaround for Windows <= XP
            Rectangle rectGrad = new Rectangle(rectDraw.X, rectDraw.Y,
                rectDraw.Width, rectDraw.Height);
            if(!WinUtil.IsAtLeastWindowsVista && !NativeLib.IsUnix())
                rectGrad.Inflate(1, 0);

            using(LinearGradientBrush brush = new LinearGradientBrush(rectGrad,
                clrStart, clrEnd, LinearGradientMode.Horizontal))
            {
                g.FillRectangle(brush, (bRtl ? (rectDraw.Width - nDrawWidth + 1) :
                    rectDraw.Left), rectDraw.Top, nDrawWidth, rectDraw.Height);
            }

            PaintText(g, rectDraw);
        }
开发者ID:haro-freezd,项目名称:KeePass,代码行数:77,代码来源:QualityProgressBar.cs

示例7: DrawCommandButton

        public static void DrawCommandButton(
            Graphics g, 
            PushButtonState state, 
            Rectangle rect, 
            Color backColor,
            Control childControl)
        {
            VisualStyleElement element = null;
            int alpha = 255;
            
            if (OS.IsVistaOrLater)
            {
                const string className = "BUTTON";
                const int partID = NativeConstants.BP_COMMANDLINK;
                int stateID;

                switch (state)
                {
                    case PushButtonState.Default:
                        stateID = NativeConstants.CMDLS_DEFAULTED;
                        break;

                    case PushButtonState.Disabled:
                        stateID = NativeConstants.CMDLS_DISABLED;
                        break;
                        
                    case PushButtonState.Hot:
                        stateID = NativeConstants.CMDLS_HOT;
                        break;

                    case PushButtonState.Normal:
                        stateID = NativeConstants.CMDLS_NORMAL;
                        break;

                    case PushButtonState.Pressed:
                        stateID = NativeConstants.CMDLS_PRESSED;
                        break;

                    default:
                        throw new InvalidEnumArgumentException();
                }

                try
                {
                    element = VisualStyleElement.CreateElement(className, partID, stateID);

                    if (!VisualStyleRenderer.IsElementDefined(element))
                    {
                        element = null;
                    }
                }

                catch (InvalidOperationException)
                {
                    element = null;
                }
            }

            if (element == null)
            {
                switch (state)
                {
                    case PushButtonState.Default:
                        element = VisualStyleElement.Button.PushButton.Default;
                        alpha = 95;
                        break;

                    case PushButtonState.Disabled:
                        element = VisualStyleElement.Button.PushButton.Disabled;
                        break;

                    case PushButtonState.Hot:
                        element = VisualStyleElement.Button.PushButton.Hot;
                        break;

                    case PushButtonState.Normal:
                        alpha = 0;
                        element = VisualStyleElement.Button.PushButton.Normal;
                        break;
                    case PushButtonState.Pressed:
                        element = VisualStyleElement.Button.PushButton.Pressed;
                        break;

                    default:
                        throw new InvalidEnumArgumentException();
                }
            }

            if (element != null)
            {
                try
                {
                    VisualStyleRenderer renderer = new VisualStyleRenderer(element);
                    renderer.DrawParentBackground(g, rect, childControl);
                    renderer.DrawBackground(g, rect);
                }

                catch (Exception)
                {
                    element = null;
//.........这里部分代码省略.........
开发者ID:metadeta96,项目名称:openpdn,代码行数:101,代码来源:UI.cs

示例8: DrawArrow

		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Draws the button with an image.
		/// </summary>
		/// ------------------------------------------------------------------------------------
		private void DrawArrow(PaintEventArgs e)
		{
			Rectangle rc = ClientRectangle;

			// If possible, render the button with visual styles. Otherwise,
			// paint the plain Windows 2000 push button.
			VisualStyleElement element = GetCorrectVisualStyleArrowElement();
			if (PaintingHelper.CanPaintVisualStyle(element))
			{
				VisualStyleRenderer renderer = new VisualStyleRenderer(element);
				renderer.DrawParentBackground(e.Graphics, rc, this);
				renderer.DrawBackground(e.Graphics, rc);
				return;
			}

			if (Font.SizeInPoints != 12)
				Font = new Font(Font.FontFamily, 12, GraphicsUnit.Point);

			ControlPaint.DrawButton(e.Graphics, rc,
				(m_state == PaintState.HotDown ? ButtonState.Pushed : ButtonState.Normal));

#if __MonoCS__
			// Linux doesn't have the Marlett font, so use standard Unicode dingbats here.
			string arrowGlyph = (m_drawLeftArrowButton ? "\u25C4" : "\u25BA");
#else
			// In the Marlett font, '3' is the left arrow and '4' is the right.
			string arrowGlyph = (m_drawLeftArrowButton ? "3" : "4");
#endif
			Color clr = (Enabled ? SystemColors.ControlText : SystemColors.GrayText);
			TextRenderer.DrawText(e.Graphics, arrowGlyph, Font, rc,	clr, m_txtFmtflags);
		}
开发者ID:sillsdev,项目名称:FieldWorks,代码行数:36,代码来源:XButton.cs

示例9: PaintButton

 /// <summary>
 /// Primary function for painting the button. This method should be overridden instead of OnPaint.
 /// </summary>
 /// <param name="graphics">The graphics.</param>
 /// <param name="bounds">The bounds.</param>
 protected virtual void PaintButton(Graphics graphics, Rectangle bounds)
 {
     VisualStyleRenderer rnd = null;
     bool vsOk = Application.RenderWithVisualStyles;
     if (vsOk)
     {
         rnd = new VisualStyleRenderer(VisualStyleElement.Button.PushButton.Normal);
         rnd.DrawParentBackground(graphics, bounds, this);
     }
     else
         graphics.Clear(this.Parent.BackColor);
     if (this.Image != null || (this.ImageList != null && this.ImageList.Images.Count == 1))
     {
         Image img = (this.Image != null) ? this.Image : this.ImageList.Images[0];
         if (Enabled)
         {
             if (vsOk)
                 rnd.DrawImage(graphics, bounds, img);
             else
                 graphics.DrawImage(img, bounds);
         }
         else
             ControlPaint.DrawImageDisabled(graphics, img, 0, 0, this.BackColor);
     }
     else if (this.ImageList != null && this.ImageList.Images.Count > 1)
     {
         int idx = (int)ButtonState - 1;
         if (this.ImageList.Images.Count == 2)
             idx = ButtonState == PushButtonState.Disabled ? 1 : 0;
         if (this.ImageList.Images.Count == 3)
             idx = ButtonState == PushButtonState.Normal ? 0 : idx - 1;
         if (vsOk)
             rnd.DrawImage(graphics, bounds, this.ImageList, idx);
         else
             graphics.DrawImage(this.ImageList.Images[idx], bounds);
     }
     else
     {
         if (vsOk)
         {
             rnd.SetParameters(rnd.Class, rnd.Part, (int)ButtonState);
             rnd.DrawBackground(graphics, bounds);
         }
         else
         {
             System.Windows.Forms.ButtonState bs = System.Windows.Forms.ButtonState.Flat;
             switch (this.ButtonState)
             {
                 case PushButtonState.Disabled:
                     bs |= System.Windows.Forms.ButtonState.Inactive;
                     break;
                 case PushButtonState.Pressed:
                     bs |= System.Windows.Forms.ButtonState.Pushed;
                     break;
                 default:
                     break;
             }
             ControlPaint.DrawButton(graphics, bounds, bs);
         }
     }
 }
开发者ID:JohnThomson,项目名称:testBloom,代码行数:66,代码来源:ImageButton.cs

示例10: DrawArrow

		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Draws the button with an image.
		/// </summary>
		/// ------------------------------------------------------------------------------------
		public void DrawArrow(PaintEventArgs e)
		{
			Rectangle rc = ClientRectangle;

			// If possible, render the button with visual styles. Otherwise,
			// paint the plain Windows 2000 push button.
			var element = GetCorrectVisualStyleArrowElement();
			if (PaintingHelper.CanPaintVisualStyle(element))
			{
				VisualStyleRenderer renderer = new VisualStyleRenderer(element);
				renderer.DrawParentBackground(e.Graphics, rc, this);
				renderer.DrawBackground(e.Graphics, rc);
				return;
			}

			if (Font.SizeInPoints != 12)
				Font = new Font(Font.FontFamily, 12, GraphicsUnit.Point);

			ControlPaint.DrawButton(e.Graphics, rc,
				(m_state == PaintState.HotDown ? ButtonState.Pushed : ButtonState.Normal));

			// In the Marlette font, '3' is the left arrow and '4' is the right.
			string arrowGlyph = (m_drawLeftArrowButton ? "3" : "4");

			Color clr = (Enabled ? SystemColors.ControlText : SystemColors.GrayText);

			// The 'r' in the Marlette font is the close button symbol 'X'
			TextRenderer.DrawText(e.Graphics, arrowGlyph, Font, rc, clr, FormatFlags);
		}
开发者ID:JohnThomson,项目名称:libpalaso,代码行数:34,代码来源:XButton.cs

示例11: OnRenderToolStripBackground

        protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
        {
            if (e.ToolStrip.IsDropDown && IsSupported)
            {

                var renderer = new VisualStyleRenderer("menu", 9, 0);

                if (renderer.IsBackgroundPartiallyTransparent())
                {
                    renderer.DrawParentBackground(e.Graphics, e.ToolStrip.ClientRectangle, e.ToolStrip);
                }

                renderer.DrawBackground(e.Graphics, e.ToolStrip.ClientRectangle, e.AffectedBounds);


            }
            else
            {
                base.OnRenderToolStripBackground(e);
            }
        }
开发者ID:InoMurko,项目名称:win-sshfs,代码行数:21,代码来源:ContextMenuStripThemedRenderer.cs

示例12: OnPaint

        /// <summary>
        /// </summary>
        /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"/> that contains the event data.</param>
        protected override void OnPaint(PaintEventArgs e)
        {
            if (Visible)
            {
                VisualStyleRenderer vs = null;
                if (Application.RenderWithVisualStyles || DesktopWindowManager.IsCompositionEnabled())
                {
                    vs = new VisualStyleRenderer(VisualStyleElement.Window.Caption.Active);
                    vs.DrawParentBackground(e.Graphics, base.ClientRectangle, this);
                }

                // Draw image
                Rectangle r = DeflateRect(base.ClientRectangle, base.Padding);
                if (this.Image != null)
                {
                    Rectangle ir = CalcImageRenderBounds(this.Image, r, base.RtlTranslateAlignment(this.ImageAlign));
                    if (this.ImageList != null && this.ImageIndex == 0)
                    {
                        if (vs != null & !this.IsDesignMode() & DesktopWindowManager.IsCompositionEnabled())
                            vs.DrawGlassIcon(e.Graphics, r, this.ImageList, this.ImageIndex);
                        else
                            this.ImageList.Draw(e.Graphics, r.X, r.Y, r.Width, r.Height, this.ImageIndex);
                    }
                    else
                    {
                        if (vs != null & !this.IsDesignMode() & DesktopWindowManager.IsCompositionEnabled())
                            vs.DrawGlassImage(e.Graphics, r, this.Image);
                        else
                            e.Graphics.DrawImage(this.Image, r);
                    }
                }

                // Draw text
                if (this.Text.Length > 0)
                {
                    TextFormatFlags tff = CreateTextFormatFlags(this.TextAlign, this.AutoEllipsis, this.UseMnemonic);
                    if (this.IsDesignMode() || vs == null || !DesktopWindowManager.IsCompositionEnabled())
                    {
                        Brush br = DesktopWindowManager.IsCompositionEnabled() ? SystemBrushes.ActiveCaptionText : SystemBrushes.ControlText;
                        e.Graphics.DrawString(Text, Font, br, base.ClientRectangle);
                    }
                    else
                        vs.DrawGlowingText(e.Graphics, base.ClientRectangle, Text, Font, ForeColor, tff);
                }
            }
        }
开发者ID:JohnThomson,项目名称:testBloom,代码行数:49,代码来源:ThemedLabel.cs


注:本文中的System.Windows.Forms.VisualStyles.VisualStyleRenderer.DrawParentBackground方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。