我在尝试制作面板边框时遇到问题,首先我将属性面板设置为:“AutoScroll = true;” 然后我将边框绘制代码放在 Panel 事件中:
ControlPaint.DrawBorder(e.Graphics,
ClientRectangle,
Color.Black, 5,
ButtonBorderStyle.Solid,
Color.Black, 5, ButtonBorderStyle.Solid,
Color.Black, 5, ButtonBorderStyle.Solid,
Color.Black, 5, ButtonBorderStyle.Solid);
Run Code Online (Sandbox Code Playgroud)
实际上我还有第二个问题,我将在这里解释所有内容..我希望你不介意。好吧,当面板滚动处于活动状态时,面板边框会发生一些崩溃。看一下图片:

即使我把
`e.Graphics.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);`
Run Code Online (Sandbox Code Playgroud)
它看起来不像边框面板,因为它只是在滚动处于活动状态时在面板内绘制一个矩形。这不是我所期望的,但我需要一个边框
我敢打赌,问题是源代码,这不是因为它不可能,看看System.Windows.Forms.Panel我认为它是完美的面板,虽然它很简单。请帮我解决这个问题。这让我很困惑
我正在开发一个 Windows 通用应用程序,我需要使用 Bitemap 但是
我似乎无法引用 System.Drawing,
为什么windows通用应用程序不能引用这个dll,我有什么替代方法?
编辑 关于如何在通用应用程序中使用我已经编写好的过滤库(取决于 system.drawing)的任何建议?
Tnx
我遇到过以下代码,它使用该类的构造函数System.Drawing.Size来添加两个 System.Drawing.Point 对象。
// System.Drawing.Point mpWF contains window-based mouse coordinates
// extracted from LParam of WM_MOUSEMOVE message.
// Get screen origin coordinates for WPF window by passing in a null Point.
System.Windows.Point originWpf = _window.PointToScreen(new System.Windows.Point());
// Convert WPF doubles to WinForms ints.
System.Drawing.Point originWF = new System.Drawing.Point(Convert.ToInt32(originWpf.X),
Convert.ToInt32(originWpf.Y));
// Add WPF window origin to the mousepoint to get screen coordinates.
mpWF = originWF + new Size(mpWF);
Run Code Online (Sandbox Code Playgroud)
我认为在最后一个语句中使用 the 是+ new Size(mpWF)一种黑客行为,因为当我阅读上面的代码时,它减慢了我的速度,因为我没有立即理解发生了什么。
我尝试按如下方式解构最后一个语句:
System.Drawing.Point tempWF = …Run Code Online (Sandbox Code Playgroud) 我将从数据库中以字节为单位获取图像并使用 system.drawing.graphic 添加一些必要的东西,然后我需要将此图像保存在 byte[] 中并发送到前端(silver light 4)进行打印。
注意(我不会将其保存在物理文件中)。
我感谢每一个帮助或你们,并在可能的情况下提供示例代码。
我有以下代码可以上传图像并使用 System.Drawing.Graphics 以 150 x 200 div 的大小绘制它,但是当图像是从 IOS 设备获取时,图片会向右旋转 90 度。
仅供参考:我在 JavaScript 画布中绘制图像时遇到了同样的问题,这个解决方案对我有用。因此我在 C# 中寻找等效的解决方案
private System.Drawing.Image ResizeAndDraw(System.Drawing.Image objTempImage)
{
Size objSize = new Size(150, 200);
Bitmap objBmp;
objBmp = new Bitmap(objSize.Width, objSize.Height);
Graphics g = Graphics.FromImage(objBmp);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
//Rectangle rect = new Rectangle(x, y, thumbSize.Width, thumbSize.Height);
Rectangle rect = new Rectangle(0,0,150,200);
//g.DrawImage(objTempImage, rect, 0, 0, objTempImage.Width, objTempImage.Height, GraphicsUnit.Pixel);
g.DrawImage(objTempImage, rect);
return objBmp;
}
Run Code Online (Sandbox Code Playgroud) 我试图在 C# 控制台应用程序中添加 System.Drawing 命名空间,但是当我使用它的“图像”类型时,出现错误:
“在命名空间‘System.Drawing’中找不到类型名称‘Image’。此类型已转发到程序集 System.Drawing.Common,版本 = 4.0.20,文化 = 中性,请考虑添加对该程序集的引用” 。
我已经转到“项目”>“添加引用”>COM>System.Drawing.dll>“选择”>“确定”来添加它,但错误仍然存在。
我想使用Graphics.Lines()方法绘制粗线.但看起来API有一些错误.如果您尝试使用以下代码呈现用户控件,您将获得奇怪的图像.我想知道是否有一些平滑模式或类似的东西可以照顾这个线条图故障.
private void UserControl1_Paint(object sender, PaintEventArgs e)
{
int n = 100;
Point[] points = new Point[n];
double x = 2;
int y = 50;
for (int i = 0; i < n; i++)
{
Point p = new Point();
p.X = 200 + (int)(i * x);
p.Y = 200 + (int)(Math.Sin(i * 0.2) * y);
points[i] = p;
}
Pen pen = new Pen(new SolidBrush(Color.Blue));
//Pen pen = new Pen(new LinearGradientBrush(new Point(0, 0), new Point(0, 100), Color.Black, Color.Red));
pen.Width …Run Code Online (Sandbox Code Playgroud) 我正在使用以下C#代码来制作带有文本的图片
// Create font. Parameter is a global variable
Font objFont = new Font(fontname, fontsize, fontstyle, System.Drawing.GraphicsUnit.Pixel);
// Grab an existing image from picture box. (target is picturebox's name)
Bitmap result;
if (target.Image != null)
{
result = new Bitmap(target.Image);
}
else
{
result = new Bitmap(target.Width, target.Height);
}
Graphics objGraphics = Graphics.FromImage(result);
// And draw to it. Select a mode with check box.
objGraphics.SmoothingMode = SmoothingMode.HighQuality;
if (!checkBox1.Checked)
{
objGraphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
}
else
{
objGraphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
} …Run Code Online (Sandbox Code Playgroud) 好吧,我有一个代码在"x"图像中应用Rain Bow过滤器,我必须以两种方式做:顺序和并行,我的顺序代码工作没有问题,但并行部分不起作用.我不知道,为什么?
码
public static Bitmap RainbowFilterParallel(Bitmap bmp)
{
Bitmap temp = new Bitmap(bmp.Width, bmp.Height);
int raz = bmp.Height / 4;
Parallel.For(0, bmp.Width, i =>
{
Parallel.For(0, bmp.Height, x =>
{
if (i < (raz))
{
temp.SetPixel(i, x, Color.FromArgb(bmp.GetPixel(i, x).R / 5, bmp.GetPixel(i, x).G, bmp.GetPixel(i, x).B));
}
else if (i < (raz * 2))
{
temp.SetPixel(i, x, Color.FromArgb(bmp.GetPixel(i, x).R, bmp.GetPixel(i, x).G / 5, bmp.GetPixel(i, x).B));
}
else if (i < (raz * 3))
{
temp.SetPixel(i, x, Color.FromArgb(bmp.GetPixel(i, x).R, bmp.GetPixel(i, x).G, …Run Code Online (Sandbox Code Playgroud) 我知道我很厚,但我在为.NET Core项目实现一个新的'using'目录时遇到了麻烦.
我已经为CoreCompact.System.Drawing下载了必要的文件(https://github.com/CoreCompat/CoreCompat)
我根本不知道如何实现文件夹,以便我可以开始使用此目录,然后使用Core项目中不支持的system.drawing对象.
我是ASP.Net的新手,但是我一直在研究C#,我不需要太详细的指南.