示例#1
0
		protected virtual void OnDrawThumb(IntPtr hdc)
		{
			Graphics graphics = Graphics.FromHdc(hdc);
			graphics.Clip = new Region(ThumbBounds);
			if (((OwnerDrawParts & TrackBarOwnerDrawParts.Thumb) == TrackBarOwnerDrawParts.Thumb) && !base.DesignMode)
			{
				TrackBarDrawItemEventArgs e = new TrackBarDrawItemEventArgs(graphics, ThumbBounds, (TrackBarItemState)ThumbState);
				if (DrawThumb != null)
					DrawThumb(this, e);
			}
			else
			{
				Fusionbird.FusionToolkit.NativeMethods.TrackBarParts parts = Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMB;
				if (ThumbBounds.Equals(Rectangle.Empty))
					return;
				switch (base.TickStyle)
				{
					case TickStyle.None:
					case TickStyle.BottomRight:
						parts = (base.Orientation != Orientation.Horizontal) ? Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBRIGHT : Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBBOTTOM;
						break;

					case TickStyle.TopLeft:
						parts = (base.Orientation != Orientation.Horizontal) ? Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBLEFT : Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBTOP;
						break;

					case TickStyle.Both:
						parts = (base.Orientation != Orientation.Horizontal) ? Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBVERT : Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMB;
						break;
				}
				if (VisualStyleRenderer.IsSupported)
				{
					new VisualStyleRenderer("TRACKBAR", (int)parts, ThumbState).DrawBackground(graphics, ThumbBounds);
					graphics.ResetClip();
					graphics.Dispose();
					return;
				}
				switch (parts)
				{
					case Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBBOTTOM:
						DrawPointerDown(graphics);
						break;

					case Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBTOP:
						DrawPointerUp(graphics);
						break;

					case Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBLEFT:
						DrawPointerLeft(graphics);
						break;

					case Fusionbird.FusionToolkit.NativeMethods.TrackBarParts.TKP_THUMBRIGHT:
						DrawPointerRight(graphics);
						break;
					default:
						if (ThumbState == 3 || !base.Enabled)
							ControlPaint.DrawButton(graphics, ThumbBounds, ButtonState.All);
						else
							graphics.FillRectangle(SystemBrushes.Control, ThumbBounds);

						ControlPaint.DrawBorder3D(graphics, ThumbBounds, Border3DStyle.Raised);
						break;
				}
			}

			graphics.ResetClip();
			graphics.Dispose();
		}
示例#2
0
		protected virtual void OnDrawTicks(IntPtr hdc)
		{
			Graphics graphics = Graphics.FromHdc(hdc);
			if (((OwnerDrawParts & TrackBarOwnerDrawParts.Ticks) == TrackBarOwnerDrawParts.Ticks) && !base.DesignMode)
			{
				TrackBarDrawItemEventArgs e = new TrackBarDrawItemEventArgs(graphics, base.ClientRectangle, (TrackBarItemState)ThumbState);
				if (DrawTicks != null)
					DrawTicks(this, e);
			}
			else
			{
				if (base.TickStyle == TickStyle.None)
					return;
				if (ThumbBounds.Equals(Rectangle.Empty))
					return;
				Color black = Color.Black;
				if (VisualStyleRenderer.IsSupported)
					black = new VisualStyleRenderer("TRACKBAR", 9, ThumbState).GetColor(ColorProperty.TextColor);
				if (base.Orientation == Orientation.Horizontal)
					DrawHorizontalTicks(graphics, black);
				else
					DrawVerticalTicks(graphics, black);
			}
			graphics.Dispose();
		}
示例#3
0
		protected virtual void OnDrawChannel(IntPtr hdc)
		{
			Graphics graphics = Graphics.FromHdc(hdc);
			if (((OwnerDrawParts & TrackBarOwnerDrawParts.Channel) == TrackBarOwnerDrawParts.Channel) && !base.DesignMode)
			{
				TrackBarDrawItemEventArgs e = new TrackBarDrawItemEventArgs(graphics, ChannelBounds, (TrackBarItemState)ThumbState);
				if (DrawChannel != null)
					DrawChannel(this, e);
			}
			else
			{
				if (ChannelBounds.Equals(Rectangle.Empty))
					return;
				if (VisualStyleRenderer.IsSupported)
				{
					new VisualStyleRenderer("TRACKBAR", 1, 1).DrawBackground(graphics, ChannelBounds);
					graphics.ResetClip();
					graphics.Dispose();
					return;
				}
				ControlPaint.DrawBorder3D(graphics, ChannelBounds, Border3DStyle.Sunken);
			}
			graphics.Dispose();
		}