Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(dateien): Bilder aus der Zwischenablage einfügen (Strg+V)

Open
#421 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
csharp
Domain
backend, desktop

Research direction

Start with src/LageBuch.App.Shared/Views/FilesView.axaml.cs to understand the existing file-drop handling, then read src/LageBuch.AppLogic/ViewModels/FilesViewModel.cs and src/LageBuch.Domain/Files/IncidentFile.cs for upload paths and file constraints. Implementing clipboard paste and byte-based browser drops also needs desktop clipboard and drag-and-drop investigation; done means both routes accept sanitized, valid images within the existing size limit, with EXIF handling considered alongside #384.

Written by the indexing model from the issue text.

Description

enhancement

Rückmeldung aus der Praxis

Copy Paste in Dateien von Bildern einer Webseite oder aus der Zwischenablage

Heute

Die Zwischenablage wird nirgends angefasst. grep -riE "clipboard|paste|ctrl\+v" src/ liefert genau einen Treffer, und der ist ein unbeteiligter Kommentar in
Behaviors/IntegerOnly.cs. Kein TopLevel.Clipboard, kein
KeyBinding Gesture="Ctrl+V".

Drag & Drop gibt es — aber nur für Dateien vom Datenträger:

// src/LageBuch.App.Shared/Views/FilesView.axaml.cs
DataContext is FilesViewModel { IsReadOnly: false, IsUploading: false }
    && e.DataTransfer.Contains(DataFormat.File)

und aufgelöst wird über f.TryGetLocalPath(). Zieht man ein Bild direkt aus
dem Browser, liefert der Browser Bytes oder eine URL, keinen lokalen Pfad — der
Drop wird kommentarlos ignoriert. Das ist genau der Fall aus der
Rückmeldung.

Der eigentliche Hinderungsgrund

Der Aufnahmeweg ist durchgehend pfadbasiert:

// src/LageBuch.AppLogic/ViewModels/FilesViewModel.cs:187
public async Task AddFilesAsync(IReadOnlyList<string> paths)   // -> File.ReadAllBytesAsync

Es gibt keinen Einstieg, der ein byte[] entgegennimmt. Ein Bild aus der
Zwischenablage hat aber nie einen Pfad.

Vorschlag

  1. Ein AddBytesAsync(name, contentType, byte[]) neben AddFilesAsync, auf das
    beide neuen Wege einzahlen.
  2. Strg+V im Reiter DATEIEN, und zusätzlich Bild-Bytes beim Drop akzeptieren,
    nicht nur DataFormat.File.
  3. Einen Namen erzeugen, da keiner mitkommt — etwa
    Zwischenablage-20260920-1432.png. Der muss wie jeder andere durch
    IncidentFile.SanitizeFileName.

Die vorhandenen Schranken greifen unverändert: erlaubte Typen sind
jpg/jpeg/png/gif/webp/pdf, die Obergrenze 25 MB
(src/LageBuch.Domain/Files/IncidentFile.cs) — beides passt für
Zwischenablage-Bilder.

Zu bedenken

  • Ein Bild von einer Webseite bringt EXIF mit; #384 will das ohnehin
    abstreifen. Ein neuer Aufnahmeweg sollte dort gleich mit angeschlossen
    werden.
  • Android hat eine eigene Zwischenablage-Geschichte; das Issue ist erst einmal
    für den Desktop gedacht.

Verwandt: #347, #384, #383.

Dominant language
C#
Stars
1
Forks
3
Avg merge
4h 34m
Merged PRs (30d)
182

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CodeForFire/lagebuch

All issues in CodeForFire/lagebuch

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.