【问题标题】:Creating a screen magnifier in C#在 C# 中创建屏幕放大镜
【发布时间】:2015-07-31 07:08:22
【问题描述】:

我按照这个网站用 C# 制作了一个放大镜。 http://www.ultimateprogrammingtutorials.info/2013/03/how-to-make-simple-magnifier-in-c.html 然而,在 Visual Studio 中对其进行调试后,我得到的只是一个空白表格。 是我做错了什么还是代码有问题?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Magnifier
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Graphics g;
        Bitmap bmp;

        private void Timer1_Tick(object sender, EventArgs e)
        {
            bmp = new Bitmap(250, 200);
            g = this.CreateGraphics();
            g = Graphics.FromImage(bmp);
            g.CopyFromScreen(MousePosition.X - 100, MousePosition.Y - 10,
                0, 0, new Size(300, 300));
            PictureBox1.Image = bmp;
        }
    }
}

【问题讨论】:

  • 您的示例中似乎有一些代码格式标记。这实际上是您的代码的一部分还是从其他地方复制和粘贴的工件?例如。 <span id="IL_AD12" class="IL_AD">namespace</span>
  • @Damien,看起来这是来自语法突出显示,可能是通过复制粘贴。
  • @FrédéricHamidi - 我不想假设。如果 OP 确实在他们的代码中包含该文本并且正在努力传达他们遇到的问题,因为它确实存在,那么这是一个不同的问题,而不是标记只是一个复制和粘贴人工制品,让他们的问题出现在这个问题上网站。
  • 抱歉,我现在正在使用两台计算机,而我正在运行代码的计算机处于脱机状态。上面的代码与我离线计算机中的代码相同(经过编辑后)。

标签: c#


【解决方案1】:

您不仅需要从网站复制和粘贴代码,还需要在表单中添加一个计时器组件并将其Tick 事件绑定到您的Timer1_Tick 方法。

【讨论】:

  • 好的,它工作得很好!但是,图像未缩放,放大镜窗体的中间未显示鼠标顶部。我该如何校准?
  • 这是一个不同的问题,因此如果以下评论没有帮助,请针对该特定问题提出一个新问题并链接到该问题以获取上下文。这是我的评论:在我看来,这段代码根本不包含任何会放大图像的内容。此外,它尝试将 300x300 像素的图像放入 250x250 像素的位图中。
  • 好的,谢谢。我会尝试一些事情,稍后再询问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 2014-10-21
  • 2016-03-08
  • 2021-02-19
  • 2018-09-18
  • 2013-08-12
相关资源
最近更新 更多