2016-08-01 28 views
0

Ich versuche, ein transparentes Bild über das Adobe Reader Control zu überlagern. So kann ich das PDF lesen, während das Bild überlappt.Overlay transparentes Bild über Adobe PDF Reader Steuerelement

Zur Zeit habe ich die Lesersteuerung und eine Imagebox, ich habe eine Überlagerungstaste, die, wenn ich klicke, das Bild transparent machen soll, damit ich den Text "durch" es lesen kann, zumindest dort, wo es transparent ist Bild.

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; 



    } 
} 

Mein Designer so weit:

My designer so far.

+0

Sie möchten, dass der weiße Bereich beim Klicken auf die Schaltfläche transparent wird? – Harvey

+0

Ja, die Bilderbox backgound sollte transparent werden, damit ich sie durchstreichen kann und das Bild überlagert werden soll. Ich kann Photoshop ein Bild davon, wie ich atleast Bild das endgültige Aussehen –

+0

Ich möchte das Bild, das ich überlagern möchte erscheinen wie ein Wasserzeichen, ständig so lang wie Sie das PDF lesen –

Antwort

0

ich Ihr Problem hier sehen können, Sie versuchen die Farbe des Bildes Feldobjekt auf Transparent festlegen, wird dies keinen Einfluss auf das Bild, sowieso.

Stellen Sie sich vor, Sie hätten kein Bild in Ihre Bilderbox geladen, die Änderung der Hintergrundfarbe würde hier einen Unterschied machen.

Um Ihren gewünschten Effekt zu erzielen, müssen Sie Ihr Bild bearbeiten und eine transparente Version erstellen (Alpha senken und als .PNG speichern). Wenn Sie dann auf die Schaltfläche klicken, müssen Sie das Originalbild mit dem neu erstellten transparenten Bild austauschen. Sie können in diesem Fall die Zeile pictureBox1.Image = Image.FromFile("Path") verwenden.

+0

Ok, ich werde versuchen, dass tun, aber wenn ich Ändern Sie die Hintergrundfarbe in der Bildbox in transparent und entfernen Sie das Bild, die Bildbox zeigt eine grau-weiße Farbe, anstatt transparent zu werden. Und Gedanken darüber, warum das passiert? –

+0

Dies könnte bedeuten, dass Sie die 'BackgroundImage' Eigenschaft der Picturebox verwenden müssten. Dies überschreibt jeden Hintergrund, den VS standardmäßig auf die Picturebox setzt – Harvey

+0

Immer noch nichts, was ich erreichen möchte. Aber ich denke, ich habe eine Workaround, es ist etwas mehr Arbeit, aber sollte es tun. Wenn ich zwei Formen mache, mache ich die zweite Form transparent und setze sie über die erste Form. Ich muss nur Funktionalität von den Steuerelementen in Form2 zu Form1 transportieren. –