Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在AdobePDF阅读器控件上覆盖透明图像_C#_Pdf_Overlay - Fatal编程技术网

C# 在AdobePDF阅读器控件上覆盖透明图像

C# 在AdobePDF阅读器控件上覆盖透明图像,c#,pdf,overlay,C#,Pdf,Overlay,我试图在Adobe Reader控件上覆盖一个透明图像。这样我可以在图像重叠时读取PDF 目前我有一个读卡器控件和一个imagebox,我有一个覆盖按钮,当我点击它时,它应该使图像透明,这样我就可以“通过”它来阅读文本,至少在图像中它是透明的地方 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void openToolS

我试图在Adobe Reader控件上覆盖一个透明图像。这样我可以在图像重叠时读取PDF

目前我有一个读卡器控件和一个imagebox,我有一个覆盖按钮,当我点击它时,它应该使图像透明,这样我就可以“通过”它来阅读文本,至少在图像中它是透明的地方

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


    private void openToolStripMenuItem_Click(object sender, EventArgs e)
    {
        OpenFileDialog open = new OpenFileDialog();
        open.Title = "Open";
        open.Filter = "PDF|*.pdf";

        try
        {
            if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                axAcroPDF1.LoadFile(open.FileName);
            }
        }
        catch (ArgumentException ex)
        {
            MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

    private void exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

    private void overlayToolStripMenuItem_Click(object sender, EventArgs e)
    {
        pictureBox1.BackColor = Color.Transparent;

        pictureBox1.Parent = axAcroPDF1;



    }
}
到目前为止,我的设计师:


我可以在这里看到您的问题,您正在尝试将图片框对象的颜色设置为透明,这不会以任何方式影响图像

假设您没有将图像加载到图片框中,在此处更改背景颜色将产生不同


为了达到您想要的效果,您需要对图片进行照片编辑,并制作一个具有透明度的版本(降低Alpha并另存为.PNG)。然后,单击按钮后,需要将原始图像切换到新创建的透明图像。在这种情况下,您可以使用行
pictureBox1.Image=Image.FromFile(“路径”)

我可以在这里看到您的问题,您正在尝试将图片框对象的颜色设置为透明,这不会以任何方式影响图像

假设您没有将图像加载到图片框中,在此处更改背景颜色将产生不同


为了达到您想要的效果,您需要对图片进行照片编辑,并制作一个具有透明度的版本(降低Alpha并另存为.PNG)。然后,单击按钮后,需要将原始图像切换到新创建的透明图像。在这种情况下,您可以使用行
pictureBox1.Image=Image.FromFile(“路径”)

您希望白色区域在单击按钮时变为透明吗?是的,picturebox背景应该变为透明,以便我可以看到,并且图像应该被覆盖。我可以用Photoshop处理一张图片,我至少可以画出最终的外观我希望我要覆盖的图片看起来像水印,只要你在阅读PDF,你就要不断显示你想要白色区域在点击按钮时变为透明吗?是的,图片盒背景应该变为透明,这样我就可以看穿它,图像应该被覆盖。我可以用Photoshop处理一张图片,我至少可以画出最终的外观我希望我要覆盖的图片像水印一样显示,只要你正在阅读PDFOk,我会尝试这样做,但是当我将picturebox上的背景色更改为透明并移除图像时,picturebox显示灰白色,而不是透明。思考一下为什么会发生这种情况?这可能意味着您必须使用picturebox的
BackgroundImage
属性。这将覆盖VS默认设置在picturebox上的任何背景,但与我试图实现的目标相差甚远。但我想我确实有一个解决办法,这需要更多的工作,但应该做到这一点。如果我制作两个表单,则将第二个表单透明,并将其放置在第一个表单上。我只需要将功能从Form2中的控件传输到Form1。好的,我会尝试这样做,但是当我将picturebox上的背景色更改为透明并删除图像时,picturebox显示的是灰白色,而不是透明。思考一下为什么会发生这种情况?这可能意味着您必须使用picturebox的
BackgroundImage
属性。这将覆盖VS默认设置在picturebox上的任何背景,但与我试图实现的目标相差甚远。但我想我确实有一个解决办法,这需要更多的工作,但应该做到这一点。如果我制作两个表单,则将第二个表单透明,并将其放置在第一个表单上。我只需要将功能从Form2中的控件传输到Form1。