WPF, C #: narysuj linię na istniejącej mapie bitowej w kontrolce obrazu
Mam bitmapę obrazu w kontrolce obrazu
Muszę narysować czerwoną linię na mapie bitowej za każdym razem, gdy klikam ją myszą, gdy klikam myszą.
Na początku myślałem o utworzeniu obiektu liniowego, ale stwierdziłem, że nie mogę dodać tej linii. Potrzebuję płótna. Ale jeśli umieszczę obraz na płótnie, moja mapa bitowa nie rozciąga się na całe płótno (odkryłem, że współrzędne mapy bitowej określają lokalizację na płótnie, więc moja mapa bitowa nie wyświetla się poprawnie).
Potem spróbowałem użyć grafiki
Graphics graphics = Graphics.FromImage(bitmapImg);
graphics.DrawLine(new System.Drawing.Pen(System.Drawing.Color.Red), 0, 0, bitmapImg.Width, bitmapImg.Height);//not the line yet, just for testing
graphics.DrawImage(bitmapImg, 0, 0, bitmapImg.Width,bitmapImg.Height);
graphics.Dispose();
Jednak nic nie jest rysowane na mojej mapie bitowej ........
Teraz myślę, że prawdopodobnie będę musiał umieścić bitmapę w tablicy, a następnie zmienić kolor piksela, aby uzyskać linię w mapie bitowej. Wierzę, że będzie to bardzo powolne.
W tej chwili próbuję coś zrobić z visualDrawing, ale nadal mi się to nie udało :-(
Jaki jest dobry sposób na pobranie ciągu znaków do istniejącej mapy bitowej w WPF C # ???? i jak to usunąć?
Byłbym wdzięczny za jakąkolwiek pomoc! Podziękować! Opublikowałem to już na stronie forum MS, ale nie ma jeszcze odpowiedzi.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jeśli nie pojawił się błąd podczas kompilowania pierwszej linii kodu, oznacza to, że jest prawdopodobnie (z WinForms), a nie obrazem kontrola z WPF ( ).
Jak już wspomniał Adrian, najprostszym sposobem prawdopodobnie byłoby użycie siatki:
Następnie w module obsługi zdarzeń kliknięcia możesz uczynić linię widoczną i nadać jej żądane współrzędne:
Anonimowy użytkownik
Potwierdzenie od:
Kod z pliku XAML:
Kod z Xaml.cs:
Wyjście
https://i.stack.imgur.com/QrCcw.png
Możesz też dodać ZIndex do swojego obrazu i linii, tak aby leżały na różnych warstwach płótna.