Autor Beitrag
discipuli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80

WIn 8.1
Innosetup/Visual Studio 12
BeitragVerfasst: Mi 10.06.20 17:37 
Ich suche den Code für Wasserzeichen.
Darunter verstehe ich eine Grafik wird hinter einen Text gelegen.
Wie könnte man das machen?
In LibreOffice geht das so:
Text schreiben, Grafik laden, anklicken, Umlauf wählen, in den Hintergrund.
fertig. Eigentlich ganz einfach. Ich kann das aber nicht in C#
Discipuli

Moderiert von user profile iconTh69: Titel erweitert.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4474
Erhaltene Danke: 921


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 10.06.20 18:14 
Zitat:
Eigentlich ganz einfach.


Du möchtest da einen Nagel in die Wand hauen, eigentlich einfach, fragst jetzt aber warum das mit dem Spachtel den du hast irgendwie nicht so einfach geht.
Dinge sind einfach wenn man zum Problem das passende Werkzeug wählt. C# ist ein Programmiersprache also schon gar nicht in der gleichen Problemklasse wie eine Textverarbeitung. Was hier eher zu vergleichen ist Winforms da es zumindest etwas auf dem Bildschirm darstellt und Winforms ist ein Werkzeug das dir helfen soll Standard Windows Anwendung im Standard Windows look mit den Standard Windows Controls zu erzeugen. Das willst du offensichtlich nicht.

Wenn du tatsächlich nur auf dem Bildschirm etwas hinter Text legen willst kannst du das selbst zeichnen. Also ein Basis Control nehmen z.b. ein Panel und dessen Paint Event implementieren. Dort erst den Hintergrund zeichnen dann das Wasserzeichen und dann den Text zeichnen. Im Paint Event hast du ein Graphics Object an der Hand das für so etwas passende Methoden bereithält. Solltest du das ganze zur Vorbereitung machen um dann davon aus dies zu drucken bist du erst recht beim falschen Werkzeug. Schau dir Reporter an. Davon gibt es reichlich. Die sind dafür gedacht strukturierte Formulare auszudrucken und auch auf dem Bildschirm zu previewen. Die sollten alle auch kein Problem mit Wasserzeichen haben.
discipuli Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80

WIn 8.1
Innosetup/Visual Studio 12
BeitragVerfasst: Mi 10.06.20 18:42 
Hallo Rolf,
Dort erst den Hintergrund zeichnen dann das Wasserzeichen und dann den Text zeichnen.
So meinte ich das nicht.
Den Text habe ich schon als txt oder doc.
Die Grafik auch.
Ich wollte also nicht also nicht zeichnen.
Wie das in LibreOffice machbar ist, habe ich geschrieben.
Den Code der das nachempfindet suche ich.
Discipuli
PS würdest du mir den schicken?
Muss ja nicht gegen Gotteslohn sein!

Moderiert von user profile iconTh69: Strike-Tags hinzugefügt.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4474
Erhaltene Danke: 921


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 10.06.20 19:49 
Zitat:
Den Code der das nachempfindet suche ich.


Den nötigen Code habe ich dir genannt. Auch wenn du die nötigen Dinge schon in irgendeinem Format hast das hilft dir so in Winforms erstmal nicht. Nimm das Wasserzeichen Bild und zeichne es auf eine Fläche in Winforms dann nimm dir den Text und zeichne in auch auf diese Fläche über das Wasserzeichen. Wie man das ungefaähr macht siehe zum Beispiel in der Doku das Control.Paint Event.

Wenn du das nicht selber machen möchtest hier gibt es auch ein Job Forum wo du es versuchen könntest. Ich würde dir aber nur dabei helfen wenn du das letztlich selbst machst.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6354
Erhaltene Danke: 141

Windows 7 + Windows 10
Tokyo Prof + CE
BeitragVerfasst: Do 11.06.20 07:47 
Mit C# habe ich jetzt schon einige Jahre nicht mehr gearbeitet, aber kann man da nicht einfach mit zwei übereinander gelegten Controls (eins für die Grafik und eins für den Text) arbeiten und bei einem die Transparenz verändern? Oder gibt es transparente Controls bei C# nicht?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4297
Erhaltene Danke: 924

Win10
C#, C++ (VS 2015/17)
BeitragVerfasst: Do 11.06.20 09:13 
Direkt gibt es die Transparenz-Einstellung nur bei der Form: Form.Opacity (also 1 - Transparency).

Für Controls kann man die sog. Semi-Transparenz aber erzeugen, s. z.B. Creating a .NET Transparent Panel.

discipuli: Du hast aber immer noch nicht geschrieben, was du genau haben möchtest. Wie stellst du den Text denn bisher dar, d.h. welches Steuerelement (Control) benutzt du? Oder redest du vom Drucken oder Erzeugen einer Datei?

Edit: Außerdem hast du dieselbe Frage doch schon vor 2 Monaten unter Grafik im Hintergrund gestellt?! Und wir können dir daher immer nur die gleiche Antwort geben...
discipuli Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80

WIn 8.1
Innosetup/Visual Studio 12
BeitragVerfasst: Do 11.06.20 14:10 
Ja, die habe ich schon mal gestellt.
Das Thema zieht sich leider hin.
Ich verstehe das nicht.
Zt. benutze sich dafür gar nichts.
Den Text stell ich mit einem Editor her.
Die Grafik ist meistens ein Foto, das unter JPG oder ähnlich gespeichert wurde.
Ich habe mehrere Bücher über C#. In keinem werden die Begriff genannt.
Oder ich wusste nicht wo nach ich suchen soll.
Wichtig ist nur, dass der Code in Visual Studio kompiliert oder aufgerufen werden kann.
Discipuli
PS Wenn das so leicht ist, dann könnte das ja einer von Euch herstellen.
Wie gesagt nicht nur gegen Gotteslohn.
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 726
Erhaltene Danke: 119



BeitragVerfasst: Do 11.06.20 18:38 
Meinst Du so etwas?
Und soll das Wasserzeichen nur angezeigt werden oder soll die Bilddatei verändert werden?

blume

Edit: Oh, ich sehe gerade: Du wolltest einen Text hinter einer Grafik haben und nicht umgedreht. Sorry :D .

ub60
Einloggen, um Attachments anzusehen!
discipuli Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80

WIn 8.1
Innosetup/Visual Studio 12
BeitragVerfasst: Do 11.06.20 21:47 
Hallo ub60
ich meinte das so wie hier zu sehen,
Vorne der Text hinten die Grafik
Discipuli
Einloggen, um Attachments anzusehen!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4297
Erhaltene Danke: 924

Win10
C#, C++ (VS 2015/17)
BeitragVerfasst: Fr 12.06.20 09:15 
Und genau das wurde dir schon beantwortet:
erst das Bild anzeigen/darstellen/zeichnen, und dann den Text darüberzeichnen (auch LibreOffice u.a. setzen dies intern nicht anders um)!

Und dafür gibt es (wie schon im anderen Beitrag von mir erwähnt) die Graphics-Klasse:
- DrawImage: Bild zeichnen
- DrawString: Text zeichnen

Wenn du jedoch nicht nur eine reine Textdatei hast, sondern ein Word-Dokument (".doc" oder ".docx" o.ä.), dann besteht eher die Schwierigkeit darin, eine geeignete Komponente (Reader und Renderer) dafür zu finden.

Wenn du es aber, wie schon mehrfach nachgefragt wurde, auf einer Form darstellen möchtest (da du hier im WinForms-Subforum gepostet hast), dann nimm z.B. die RichTextBox-Komponente (evtl. vorher dann die Datei in RTF umwandeln) und mache diese Komponente, entsprechend des Links im meinem vorherigen Beitrag, transparent. Und dahinter platzierst du dann das Bild (z.B. innerhalb einer PictureBox).

Wir werden dir aber keinen konkreten Code dafür liefern, und wenn du weiter danach fragst, werde ich dieses Thema schließen müssen.