Laden...

PDF in einer WPF GUI anzeigen und bearbeiten können.

Erstellt von Andreas B. vor 4 Jahren Letzter Beitrag vor 4 Jahren 2.473 Views
A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren
PDF in einer WPF GUI anzeigen und bearbeiten können.

Hallo, nehmts mir nicht übel wenn der Post hier an der falschen Stelle ist.

Mein Problem:

Ich möchte in meinem View "Anzeige.xaml" in einem Grid eine PDF anzeigen lassen.
Mein ViewModel "Anzeige.cs" ist leer.
Über das MainWindow.xaml und einem darin liegenden Button öffne ich das View "Anzeige.xaml" mit einem Binding

<DataTemplate x:Name="AnzeigeTemplate" DataType="{x:Type ViewModels:AnzeigeModel}">
            <Views:Anzeige DataContext="{Binding}"/>
        </DataTemplate>

Das funktioniert auch. Nun soll sich eine PDF im Grid der View Anzeige öffnen sobald ich diese anlicke. Zusätzlich muss man die PDF auch bearbeiten können. Sprich wie man es kennt Stempel oder Kommentare einsetzten und Speichern.

Kann mir da wer weiter helfen?
Hab mir da alle Beispiele im Netz schon angeschaut helfen mir aber nicht weiter. Das Forum ist meine letzte Option.

16.842 Beiträge seit 2008
vor 4 Jahren

Hallo, nehmts mir nicht übel wenn der Post hier an der falschen Stelle ist.

.. naja, wenigstens im WPF Bereich hättest Du das Thema schon posten können.
WinForms war jedenfalls die falsche Stelle. Soviel Mühe kann man erwarten.

Zum Problem:

.NET hat von Haus aus keinerlei Möglichkeit ein PDF direkt anzuzeigen oder zu bearbeiten.
Hier musst Du auf Drittkomponenten Deiner Wahl (i.d.R. sind diese kostenpflichtig) zurück greifen.

Über den integrierten WebBrowser, der auf dem abgekündigten Internet Explorer über ActiveX basiert, sollte man es auf keinen Fall mehr machen.

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

Danke für die schnelle Antwort.

Oh mist du hast recht. Das hätte ich wirklich in WPF posten können.

die Lösung mit dem Browser kommt nicht in Frage. Im Moment versuche ich mir den PdfViewer über das Benutzersteuerelement zu erstellen und das über die WindowsFormsHost zu wrappen. Aber das habe ich auch nur aus einem Beispiel und leider klappt es nicht wirklich.

Falls du ein paar dieser kostenpflichtigen Komponenten kennst wäre es schon sehr hilfreich.

16.842 Beiträge seit 2008
vor 4 Jahren

über die WindowsFormsHost zu wrappen.

Du sagst es doch selbst: Du arbeitest mit WPF - und dann WindowsFormsHost?
Suchst irgendwas auf Google und probierst das dann einfach aus, ohne zu prüfen, ob das für Dich passt? 🤔

Falls du ein paar dieser kostenpflichtigen Komponenten kennst wäre es schon sehr hilfreich.

Wenn Du ein paar Minuten in Google investierst, dann findest die üblichen Report-Hersteller.
SyncFusion, IronPDF..... Kannst gern die Evaluierung selbst durchführen. Gehört zu den normalen Aufgaben eines Entwicklers 🙂

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

Ok danke, sorry bin kein Entwickler und habe auch nocht nicht mit WPF/c# zu tun gehabt.

Darum hoffte ich auch hier auf Hilfe.

16.842 Beiträge seit 2008
vor 4 Jahren

Kein Problem - aber das Forum kann Dir jetzt auch nich Deine Arbeit abnehmen; ist ja nicht der Sinn eines Forums.
Können Dich an der Stelle auch nur in die richtige Richtung schubsen. Entwickeln musst dann schon selbst - oder eben machen lassen 😃

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

Ne ne passt schon, will ja nicht das mir jemend was entwickelt.
Komm einfach nicht zurecht mit dem Ganzen MVVM und der Trennung der verschiedenen Files sowie die c# Programmierung. Hoffte das mir jemand einfach erklärt welche Schritte ich da machen muss.

Ist auch egal. Danke für deine Mühe.

T
461 Beiträge seit 2013
vor 4 Jahren

Oder auch dieses offene kostenlose Online-Buch für jeden als grundlegenden Einstieg: Openbook Rheinwerk-Verlag

Ist zudem hier auf der Webseite zur linken Seite im Hauptmenü zu finden, sowie noch weitere Einstiegshilfen.

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

Hi Th69,
vielen Dank für den Klasse Link. Das hat schon etwas Licht ins Dunkle gebracht.

Für mich als Einsteiger und Neuling ist das alles sehr viel und doch auch kompliziert. Es fällt mir auch sehr schwer mich da ein zu finden. Aber das wird irgendwann schon werden.

Wenn ich das also richtig verstanden habe ist es so:

Views sind die UI's die Oberfläche auf der ich dann später arbeite.
ViewModels beinhalten den Codebehind für die Views. Ok soweit klar.

die MainWindow.xaml und .xaml.cs sind die Hauptdateien???

wozu dann noch die BaseViewModel.cs und die MeinViewModel.cs?

Grüße Andi

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

Tip Top, vielen Dank auch an dich.

Gruß Andi

4.942 Beiträge seit 2008
vor 4 Jahren

...
Wenn ich das also richtig verstanden habe ist es so:

Views sind die UI's die Oberfläche auf der ich dann später arbeite.
ViewModels beinhalten den Codebehind für die Views. Ok soweit klar.

die MainWindow.xaml und .xaml.cs sind die Hauptdateien???

wozu dann noch die BaseViewModel.cs und die MeinViewModel.cs?

Du meinst sicherlich MainViewModel.cs?

In die XAML-Dateien kommen nur die Definitionen für die Views, und die ViewModel-Klassen sind separat davon in eigenen C#-Dateien (so daß man hier nicht von CodeBehind-Dateien spricht).
Die eigentliche CodeBehind-Datei (.xaml.cs) ist daher (fast) leer, s. im Artikel "2.2 Instanziierung des ViewModels".

Und fortschrittlicher wird sogar mittels "Dependency Injection" die Instanziierung des ViewModels zum Setzen des DataContext aus der View (bzw. dem Codebehind) herausgelöst.

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

Wow ok es wird schon wärmer... Das Verständnis wächst.

vielen lieben Dank. Wenn ich diese Aufgabe ich aufs Auge gedrückt bekommen hätte würd ich das auch nicht machen. Es liegt mir einfach nicht.

Aber egal, kann ja nur dabei lernen. Danke noch mal. Tip Top

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

wie kann ich ein Bild hochladen? Wollte gerne mal meine Projektstruktur zeigen aber ich finde die Funktion zum hochladen nicht.

4.942 Beiträge seit 2008
vor 4 Jahren

Unten bei "Dateianhang:" auf den Button "Bearbeiten..." klicken - dann Datei auswählen und "speichern".

A
Andreas B. Themenstarter:in
9 Beiträge seit 2019
vor 4 Jahren

So sieht mal meine Striktur aus... Habe ein Hauptfenster MainWindow in dem ein Menü ist über das ich die andren Fenster öffne und in einem neuen Fenster anzeigen lasse.

16.842 Beiträge seit 2008
vor 4 Jahren

xaml.cs sind Code Behind Dateien, die es bei korrekter Anwendung von MVVM zwar existiert aber quasi leer ist.

F
10.010 Beiträge seit 2004
vor 4 Jahren

Das ist nicht war.
In der ...xaml.cs steht der Contructor der Page/Window/View und beinhaltet das InitializeComponents.
Aber auch nur das.