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


C# Cairo.Paint方法代码示例

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


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

示例1: DrawPixbuf

 public static void DrawPixbuf(Cairo.Context cr, Pixbuf pixbuf)
 {
     cr.SetSourceRGBA(0.0, 0.0, 0.0, 1.0);
     cr.Operator = Cairo.Operator.DestIn;
     Gdk.CairoHelper.SetSourcePixbuf (cr, pixbuf, 0, 0);
     cr.Paint ();
     cr.Operator = Cairo.Operator.Over;
     cr.Paint ();
 }
开发者ID:niwakazoider,项目名称:unicast,代码行数:9,代码来源:WindowController.cs

示例2: Paint

        public override void Paint(Cairo.Context gr, Rectangle rect, string subPart = "")
        {
            float widthRatio = 1f;
            float heightRatio = 1f;

            if (Scaled){
                widthRatio = (float)rect.Width / Dimensions.Width;
                heightRatio = (float)rect.Height / Dimensions.Height;
            }

            if (KeepProportions) {
                if (widthRatio < heightRatio)
                    heightRatio = widthRatio;
                else
                    widthRatio = heightRatio;
            }

            gr.Save ();

            gr.Translate (rect.Left,rect.Top);
            gr.Scale (widthRatio, heightRatio);
            gr.Translate ((rect.Width/widthRatio - Dimensions.Width)/2, (rect.Height/heightRatio - Dimensions.Height)/2);

            using (ImageSurface imgSurf = new ImageSurface (image, Format.Argb32,
                Dimensions.Width, Dimensions.Height, 4 * Dimensions.Width)) {
                gr.SetSourceSurface (imgSurf, 0,0);
                gr.Paint ();
            }
            gr.Restore ();
        }
开发者ID:jpbruyere,项目名称:Crow,代码行数:30,代码来源:BmpPicture.cs

示例3: OnExposed

 protected override bool OnExposed(Cairo.Context cr, Cairo.Rectangle area)
 {
     if(Pixbuf == null)
         return false;
     int w = Pixbuf.Width;
     int h = Pixbuf.Height;
     cr.Scale(Allocation.Width / w, Allocation.Height / h);
     Gdk.CairoHelper.SetSourcePixbuf(cr, Pixbuf, 0.0, 0.0);
     cr.Paint();
     return true;
 }
开发者ID:sciaopin,项目名称:bang-sharp,代码行数:11,代码来源:Picture.cs

示例4:

		void IIconBarMarker.DrawIcon (TextEditor ed, Cairo.Context cr, DocumentLine line, int lineNumber, double x, double y, double width, double height)
		{
			cr.Save ();
			cr.Translate (
				x + 0.5  + (width - cache.errorPixbuf.Width) / 2,
				y + 0.5 + (height - cache.errorPixbuf.Height) / 2
			);
			Gdk.CairoHelper.SetSourcePixbuf (
				cr,
				errors.Any (e => e.IsError) ? cache.errorPixbuf : cache.warningPixbuf, 0, 0);
			cr.Paint ();
			cr.Restore ();

		}
开发者ID:halleyxu,项目名称:monodevelop,代码行数:14,代码来源:MessageBubbleTextMarker_IconBar.cs

示例5: OnRender

		protected override void OnRender (Cairo.Context context)
		{
			if (surfaceCache == null) {
				// will improve with CGLayer surfaces
				surfaceCache = new SurfaceWrapper (context, pbuf);
			}
			int x = (int)((Width - pbuf.Width) * XAlign);
			int y = (int)((Height - pbuf.Height) * YAlign);
			context.SetSourceSurface (surfaceCache.Surface, x, y);
			double opacity = Opacity;
			if (opacity == 1)
				context.Paint ();
			else
				context.PaintWithAlpha (Opacity);

			base.OnRender (context);
		}
开发者ID:jassmith,项目名称:Xamarin.Canvas,代码行数:17,代码来源:ImageCanvasElement.cs

示例6: OnDrawn

	protected override bool OnDrawn (Cairo.Context cr)
	{
		Gdk.Rectangle titleArea = TitleArea;

		Gdk.CairoHelper.SetSourcePixbuf (cr, Icon, 0, 0);
		cr.Paint ();
		
		int layout_x = icon.Width + 1;
		titleArea.Width -= icon.Width - 1;
		
		int layoutWidth, layoutHeight;
		Layout.GetPixelSize (out layoutWidth, out layoutHeight);
		
		int layout_y = (titleArea.Height - layoutHeight) / 2;
		
		StyleContext.RenderLayout (cr, layout_x, layout_y, Layout);
	
		return base.OnDrawn (cr);
	}
开发者ID:akrisiun,项目名称:gtk-sharp,代码行数:19,代码来源:CustomWidget.cs

示例7: RenderCoverArt

        protected override void RenderCoverArt (Cairo.Context cr, ImageSurface image)
        {
            if (image == null) {
                return;
            }

            Gdk.Rectangle alloc = RenderAllocation;
            int asr = ArtworkSizeRequest;
            int reflect = (int)(image.Height * 0.2);
            int surface_w = image.Width;
            int surface_h = image.Height + reflect;
            int x = alloc.X + alloc.Width - asr;
            int y = alloc.Y;

            Surface scene = null;
            if (!surfaces.TryGetValue (image, out scene)) {
                scene = CreateScene (cr, image, reflect);
                surfaces.Add (image, scene);
            }

            cr.Rectangle (x, y, asr, alloc.Height);
            cr.Color = BackgroundColor;
            cr.Fill ();

            x += (asr - surface_w) / 2;
            y += surface_h > asr ? 0 : (asr - surface_h) / 2;

            cr.SetSource (scene, x, y);
            cr.Paint ();
        }
开发者ID:gclark916,项目名称:banshee,代码行数:30,代码来源:LargeTrackInfoDisplay.cs

示例8: DrawPixbuf

 void DrawPixbuf(Cairo.Context ctx, Gdk.Pixbuf img, double x, double y, ImageDescription idesc)
 {
     ctx.Save ();
     ctx.Translate (x, y);
     ctx.Scale (idesc.Size.Width / (double)img.Width, idesc.Size.Height / (double)img.Height);
     Gdk.CairoHelper.SetSourcePixbuf (ctx, img, 0, 0);
     if (idesc.Alpha == 1)
         ctx.Paint ();
     else
         ctx.PaintWithAlpha (idesc.Alpha);
     ctx.Restore ();
 }
开发者ID:neiz,项目名称:xwt,代码行数:12,代码来源:ImageHandler.cs

示例9: OnDrawContent

		protected override void OnDrawContent (Gdk.EventExpose evnt, Cairo.Context context)
		{
			context.LineWidth = 1;
			var alloc = ChildAllocation;
			var adjustedMarginSize = alloc.X - Allocation.X  + headerMarginSize;

			var r = results.Where (res => res.Item2.ItemCount > 0).ToArray ();
			if (r.Any ()) {
				context.SetSourceColor (lightSearchBackground);
				context.Rectangle (Allocation.X, Allocation.Y, adjustedMarginSize, Allocation.Height);
				context.Fill ();

				context.SetSourceColor (darkSearchBackground);
				context.Rectangle (Allocation.X + adjustedMarginSize, Allocation.Y, Allocation.Width - adjustedMarginSize, Allocation.Height);
				context.Fill ();
				context.MoveTo (0.5 + Allocation.X + adjustedMarginSize, 0);
				context.LineTo (0.5 + Allocation.X + adjustedMarginSize, Allocation.Height);
				context.SetSourceColor (separatorLine);
				context.Stroke ();
			} else {
				context.SetSourceRGB (1, 1, 1);
				context.Rectangle (Allocation.X, Allocation.Y, Allocation.Width, Allocation.Height);
				context.Fill ();
			}

			double y = alloc.Y + yMargin;
			int w, h;
			if (topItem != null) {
				headerLayout.SetText (GettextCatalog.GetString ("Top Result"));
				headerLayout.GetPixelSize (out w, out h);
				context.MoveTo (alloc.Left + headerMarginSize - w - xMargin, y);
				context.SetSourceColor (headerColor);
				Pango.CairoHelper.ShowLayout (context, headerLayout);

				var category = topItem.Category;
				var dataSrc = topItem.DataSource;
				var i = topItem.Item;

				double x = alloc.X + xMargin + headerMarginSize;
				context.SetSourceRGB (0, 0, 0);
				layout.SetMarkup (GetRowMarkup (dataSrc, i));
				layout.GetPixelSize (out w, out h);
				if (selectedItem != null && selectedItem.Category == category && selectedItem.Item == i) {
					context.SetSourceColor (selectionBackgroundColor);
					context.Rectangle (alloc.X + headerMarginSize, y, Allocation.Width - adjustedMarginSize, h);
					context.Fill ();
					context.SetSourceRGB (1, 1, 1);
				}

				var px = dataSrc.GetIcon (i);
				if (px != null) {
					Gdk.CairoHelper.SetSourcePixbuf (context, px, (int)x + marginIconSpacing, (int)y + (h - px.Height) / 2);
					context.Paint ();
					x += px.Width + iconTextSpacing + marginIconSpacing;
				}

				context.MoveTo (x, y);
				context.SetSourceRGB (0, 0, 0);
				Pango.CairoHelper.ShowLayout (context, layout);

				y += h + itemSeparatorHeight;

			}

			foreach (var result in r) {
				var category = result.Item1;
				var dataSrc = result.Item2;
				if (dataSrc.ItemCount == 0)
					continue;
				if (dataSrc.ItemCount == 1 && topItem != null && topItem.DataSource == dataSrc)
					continue;
				headerLayout.SetText (category.Name);
				headerLayout.GetPixelSize (out w, out h);

				if (y + h > Allocation.Height)
					break;

				context.MoveTo (alloc.X + headerMarginSize - w - xMargin, y);
				context.SetSourceColor (headerColor);
				Pango.CairoHelper.ShowLayout (context, headerLayout);

				layout.Width = Pango.Units.FromPixels (Allocation.Width - adjustedMarginSize - 35);

				for (int i = 0; i < maxItems && i < dataSrc.ItemCount; i++) {
					if (topItem != null && topItem.Category == category && topItem.Item == i)
						continue;
					double x = alloc.X + xMargin + headerMarginSize;
					context.SetSourceRGB (0, 0, 0);
					layout.SetMarkup (GetRowMarkup (dataSrc, i));
					layout.GetPixelSize (out w, out h);
					if (y + h + itemSeparatorHeight > Allocation.Height)
						break;
					if (selectedItem != null && selectedItem.Category == category && selectedItem.Item == i) {
						context.SetSourceColor (selectionBackgroundColor);
						context.Rectangle (alloc.X + headerMarginSize, y, Allocation.Width - adjustedMarginSize, h);
						context.Fill ();
						context.SetSourceRGB (1, 1, 1);
					}

					var px = dataSrc.GetIcon (i);
//.........这里部分代码省略.........
开发者ID:llucenic,项目名称:monodevelop,代码行数:101,代码来源:SearchPopupWindow.cs

示例10: DrawForeground

		public override void DrawForeground (TextEditor editor, Cairo.Context cr, MarginDrawMetrics metrics)
		{
			cr.Save ();
			cr.Translate (
				metrics.X + 0.5 + (metrics.Width - 2 - cache.errorPixbuf.Width) / 2,
				metrics.Y + 0.5 + (metrics.Height - cache.errorPixbuf.Height) / 2
				);
			Gdk.CairoHelper.SetSourcePixbuf (
				cr,
				errors.Any (e => e.IsError) ? cache.errorPixbuf : cache.warningPixbuf, 0, 0);
			cr.Paint ();
			cr.Restore ();

		}
开发者ID:llucenic,项目名称:monodevelop,代码行数:14,代码来源:MessageBubbleTextMarker.cs

示例11: paintBackground

 protected void paintBackground(Cairo.Context context, Field[,] fields)
 {
     context.SetSourceRGB (0.8, 0.8, 0.8);
     context.Paint ();
     for (int i = 0; i < width; i++) {
         for (int j = 0; j < height; j++) {
             paintSquare (context, i * fieldSize, j * fieldSize, fields [i, j].Full);
         }
     }
     paintGrid (context);
     context.Paint ();
 }
开发者ID:Teyras,项目名称:Bounce,代码行数:12,代码来源:BoardRenderer.cs

示例12: DrawIndicator

		protected void DrawIndicator (Cairo.Context cr, Severity severity)
		{
			cr.Save ();
			var pixbuf = GetIndicatorIcon (severity);
			cr.Translate (
				1 + (Allocation.Width - pixbuf.Width) / 2,
				1
			);

			CairoHelper.SetSourcePixbuf (
				cr,
				pixbuf,
				0, 0
			);
			cr.Paint ();
			cr.Restore ();
		}
开发者ID:OnorioCatenacci,项目名称:monodevelop,代码行数:17,代码来源:QuickTaskOverviewMode.cs

示例13: DrawVertCurrentCondition

		/// <summary>
		/// Paints the current condition.
		/// </summary>
		/// <param name="cr">
		/// A <see cref="Cairo.Context"/> to do the painting.
		/// </param>
		void DrawVertCurrentCondition (Cairo.Context cr)
		{
			int cellSize = Allocation.Height / 6;
			int iconSize = cellSize - 4;
			
			int yPos = 0;
			int topYPos = cellSize / 3;
			int botYPos = 2 * topYPos;
			
			// draw the temp
			using (Gdk.Pixbuf pbuf = DockServices.Drawing.LoadIcon (DockServices.Paths.SystemDataFolder.GetChild ("temp.svg").Path, iconSize)) {
				Gdk.CairoHelper.SetSourcePixbuf (cr, pbuf, (Allocation.Width - iconSize) / 2, yPos + (cellSize - iconSize) / 2);
				cr.Paint ();
			}
			yPos += cellSize;
			
			if (!WeatherController.Weather.ShowFeelsLike)
				DrawVertConditionText (cr, yPos + topYPos, WeatherController.Weather.Temp + AbstractWeatherSource.TempUnit);
			else
				DrawVertConditionText (cr, yPos + topYPos, WeatherController.Weather.Temp + AbstractWeatherSource.TempUnit + " (" + WeatherController.Weather.FeelsLike + AbstractWeatherSource.TempUnit + ")");
			

			// draw humidity
			string humidity = String.Format (Catalog.GetString ("{0} humidity"), WeatherController.Weather.Humidity);
			DrawVertConditionText (cr, yPos + botYPos, humidity);
			yPos += cellSize;
			

			// draw the wind
			using (Gdk.Pixbuf pbuf = DockServices.Drawing.LoadIcon (DockServices.Paths.SystemDataFolder.GetChild ("wind.svg").Path, iconSize)) {
				Gdk.CairoHelper.SetSourcePixbuf (cr, pbuf, (Allocation.Width - iconSize) / 2, yPos + (cellSize - iconSize) / 2);
				cr.Paint ();
			}
			yPos += iconSize;
			
			DrawVertConditionText (cr, yPos + topYPos, WeatherController.Weather.Wind + " " + AbstractWeatherSource.WindUnit);
			DrawVertConditionText (cr, yPos + botYPos, WeatherController.Weather.WindDirection);
			yPos += cellSize;

			
			// draw sun
			using (Gdk.Pixbuf pbuf = DockServices.Drawing.LoadIcon (DockServices.Paths.SystemDataFolder.GetChild ("sun.svg").Path, iconSize)) {
				Gdk.CairoHelper.SetSourcePixbuf (cr, pbuf, (Allocation.Width - iconSize) / 2, yPos + (cellSize - iconSize) / 2);
				cr.Paint ();
			}
			yPos += iconSize;
			
			DrawVertConditionText (cr, yPos + topYPos, WeatherController.Weather.SunRise.ToShortTimeString ());
			DrawVertConditionText (cr, yPos + botYPos, WeatherController.Weather.SunSet.ToShortTimeString ());
		}
开发者ID:Aurora-and-Equinox,项目名称:docky,代码行数:56,代码来源:WeatherPainter.cs

示例14: ShapeSurface

 protected virtual void ShapeSurface (Cairo.Context cr, Cairo.Color color)
 {
     cr.Operator = Cairo.Operator.Source;
     Cairo.Pattern pattern = new Cairo.SolidPattern (color, false);
     cr.Source = pattern;
     pattern.Destroy ();
     cr.Paint ();
 }
开发者ID:haugjan,项目名称:banshee-hacks,代码行数:8,代码来源:OverlayWindow.cs

示例15: DrawIcon

		public void DrawIcon (TextEditor editor, Cairo.Context cr, DocumentLine line, int lineNumber, double x, double y, double width, double height)
		{
			Gdk.CairoHelper.SetSourcePixbuf (
				cr,
				errors.Any (e => e.IsError) ? cache.errorPixbuf : cache.warningPixbuf,
				(int)(x + (width - cache.errorPixbuf.Width) / 2),
				(int)(y + (height - cache.errorPixbuf.Height) / 2));
			cr.Paint ();
		}
开发者ID:harishamdani,项目名称:monodevelop,代码行数:9,代码来源:MessageBubbleTextMarker.cs


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