我希望原点位于我窗口的中心.
______________ | ^ | | | | | o----->| | | |____________|
.NET希望它位于左上角.
_____________> | | | | | | | | V____________|
点网和我正在努力相处..
有没有人知道如何在C#中使用Graphics对象?
Graphics.TranslateTransform不会这样做,因为它会使坐标翻转过来.结合这个Graphics.ScaleTransform(1,-1)并不令人满意,因为这会使文本显示为颠倒.
我正在尝试将一些文本渲染到Web窗体应用程序中的图像的特定部分.文本将由用户输入,因此我想改变字体大小以确保它适合边界框.
我的代码在我的概念验证实现上做得很好,但我现在正在尝试对付设计师的资产,这些资产更大,而且我得到了一些奇怪的结果.
我正在运行大小计算如下:
StringFormat fmt = new StringFormat();
fmt.Alignment = StringAlignment.Center;
fmt.LineAlignment = StringAlignment.Near;
fmt.FormatFlags = StringFormatFlags.NoClip;
fmt.Trimming = StringTrimming.None;
int size = __startingSize;
Font font = __fonts.GetFontBySize(size);
while (GetStringBounds(text, font, fmt).IsLargerThan(__textBoundingBox))
{
context.Trace.Write("MyHandler.ProcessRequest",
"Decrementing font size to " + size + ", as size is "
+ GetStringBounds(text, font, fmt).Size()
+ " and limit is " + __textBoundingBox.Size());
size--;
if (size < __minimumSize)
{
break;
}
font = __fonts.GetFontBySize(size);
}
context.Trace.Write("MyHandler.ProcessRequest", "Writing " + text + " in " …Run Code Online (Sandbox Code Playgroud) 我在网站上使用Image.FromStream方法很难.以下代码在我的计算机上运行良好.但是当我将它上传到测试服务器时,它总是给我"参数无效"异常.
if (!afuImageFile.IsUploading && afuImageFile.HasFile)
{
System.Drawing.Image imgFile = System.Drawing.Image.FromStream(afuImageFile.FileContent);
}
Run Code Online (Sandbox Code Playgroud)
这afuImageFile是AsynFileUploaderAjax工具包中的一个控件.afuImageFile.FileContent是一个HttpInputStream.我想我需要为某个文件夹添加一些权限.谁能帮我?
我使用以下代码将文本绘制到jpg图像上,但它需要x/y坐标精度来放置文本的位置.
var bmp = new Bitmap("C:\\testing\\Given.jpg");
var gra = Graphics.FromImage(bmp);
var text = "The Berman's";
var font = new Font("Segoe Script", 24);
var brush = Brushes.Orange;
var point = new PointF(130, 224);
gra.DrawString(text, font, brush, point);
bmp.Save("C:\\testing\\Custom.jpg");
Run Code Online (Sandbox Code Playgroud)
我如何将文本居中放在图像上?我猜这将与定义某种容器(矩形可能?),这是图像的宽度和文本的中心?不确定最佳做法是什么.
我正在开发一个项目,让我近似文本呈现为图像和文本的DHTML编辑器.使用.NET 4 DrawingContext对象的DrawText方法呈现图像.
DrawText方法将文本与字体信息以及尺寸一起使用,并计算使文本尽可能合适所需的包装,如果文本太长则在末尾放置省略号.所以,如果我有以下代码在Rectangle中绘制文本,它将缩写它:
string longText = @"A choice of five engines, although the 2-liter turbo diesel, supposedly good for 48 m.p.g. highway, is not coming to America, at least for now. A 300-horsepower supercharged gasoline engine will likely be the first offered in the United States. All models will use start-stop technology, and fuel consumption will decrease by an average of 19 percent across the A6 lineup. A 245-horsepower A6 hybrid was also unveiled, but no decision has yet …Run Code Online (Sandbox Code Playgroud) 我正在制定一个日程安排并用面板代表时间段,而约会则是更多的面板.
用户可以向上和向下滚动,以便他们可以看到的范围更早或更晚.当约会在可见范围的末尾运行时,我希望有一个锯齿形,表明约会超出了可见范围.
我已经确定了发生这种情况的情况,并且我调用了一个私有函数drawZigZag(Panel p, int direction);来绘制它.日期水平展开,方向-1表示左侧的锯齿形,1表示右侧的锯齿形.
到目前为止,我还没有达到曲折,我只是在试验CreateGraphics()和FillPolygon().到目前为止,我有:
private void drawZigZag(Panel p, int direction) // 1 = right, -1 = left
{
Graphics g = p.CreateGraphics();
g.FillRectangle(new SolidBrush(Color.FromArgb(0, Color.Black)), p.DisplayRectangle);
Point[] points = new Point[4];
points[0] = new Point(0, 0);
points[1] = new Point(0, p.Height);
points[2] = new Point(p.Width, p.Height);
points[3] = new Point(p.Width, 0);
Brush brush = new SolidBrush(Color.DarkGreen);
g.FillPolygon(brush, points);
}
Run Code Online (Sandbox Code Playgroud)
FillRectangle()我最初没有的第一个.我只补充说,当时FillPolygon()没有用.
基本上,它不起作用,我不知道为什么.面板是原始颜色 - 它尚未填充DarkGreen.我以前用过CreateGraphics()其他东西,我不确定为什么它在这种情况下不起作用.有任何想法吗?
编辑:对不起,我想我应该提一下:我的几个Label控件 …
我正在尝试将一些文本添加到工具条进度条,但到目前为止我还没有成功,这里是我在这里找到的一些代码:
private void pbPrecentage(ToolStripProgressBar pb)
{
ProgressBar p = new ProgressBar();
int percent = (int)(((double)(pb.Value - pb.Minimum) /
(double)(pb.Maximum - pb.Minimum)) * 100);
using (Graphics gr = pb.CreateGraphics())
{
gr.DrawString(percent.ToString() + "%",
SystemFonts.DefaultFont,
Brushes.Black,
new PointF(pb.Width / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Width / 2.0F),
pb.Height / 2 - (gr.MeasureString(percent.ToString() + "%",
SystemFonts.DefaultFont).Height / 2.0F)));
}
}
Run Code Online (Sandbox Code Playgroud)
问题是Tool Strip Progress Bar没有CreateGraphics方法.所以我想知道是否有人能够成功地将文本添加到工具条进度条.
好吧,似乎ToolStripProgressBar有一个进度条属性,后者又有CreateGraphics方法,但现在的问题是文本值闪烁并闪烁,我该如何修复它?这是修改后的代码:
private void pbPrecentage(ToolStripProgressBar pb)
{
int percent = (int)(((double)(pb.Value - pb.Minimum) /
(double)(pb.Maximum …Run Code Online (Sandbox Code Playgroud) 我将图像保存在数据库中...但如何从数据库中检索该图像..当我尝试使用system.drawing ..它显示一个错误..一些ppl说我不能在wpf中使用system.drwa ..甚至不是dll文件..
我的代码是
private void btnShow_Click(object sender, RoutedEventArgs e)
{
DataTable dt2 = reqBll.SelectImage().Tables[0];
byte[] data = (byte[])dt2.Rows[0][1];
MemoryStream strm = new MemoryStream();
strm.Write(data, 0, data.Length);
strm.Position = 0;
System.Drawing.Image img = System.Drawing.Image.FromStream(strm);
BitmapImage bi = new BitmapImage();
bi.BeginInit();
MemoryStream ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
ms.Seek(0, SeekOrigin.Begin);
bi.StreamSource = ms;
bi.EndInit();
ImgBox.Source = bi;
}
Run Code Online (Sandbox Code Playgroud)
现在做什么?
我使用了system.drawing.dll ..现在我可以使用system.drawing.bitmap ..但是在使用它之后会在System.Drawing.Image.FromStream(strm)中显示错误;
错误: - 用户代码未处理参数异常
参数无效.
我正在寻找一种方法,使标签中的文本可以缩放,使其适合整个父容器.我能想到的一种方法是在窗口上重新调整容器大小,然后相应地增大或减小字体大小,但这会限制其可能性.
想知道是否有更好的方法,这可能更像是Winforms应用程序中的锚属性.
我正在开发一款游戏,但目前我正在运行基准测试.
如果有人可以帮我解决这个问题,我将不胜感激.
我正在做的是,当我点击开始按钮时,我在面板上触发绘制事件,使用以下代码:
private void startToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
pnlArea.Invalidate();
}
catch (Exception)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的绘画事件中这样做:
private void pnlArea_Paint(object sender, PaintEventArgs e)
{
try
{
stopwatch = new Stopwatch();
// Begin timing
stopwatch.Start();
if (gameStatus == GameStatus.PlaceHead)
{
e.Graphics.DrawImage(dictHead["HeadRight"], 100, 100, 15, 15);
}
//e.Graphics.Clear(Color.White);
if (gameStatus == GameStatus.GameTest)
{
int x = 0;
int y = 0;
for (int i = 0; i < 5000; i++)
{
x += 15;
if (x > 1000) …Run Code Online (Sandbox Code Playgroud) system.drawing ×10
c# ×8
winforms ×3
asp.net ×2
c#-4.0 ×1
drawing ×1
drawstring ×1
gdi ×1
gdi+ ×1
imaging ×1
label ×1
performance ×1
telerik ×1
text ×1
wpf ×1