Mam aplikację, która wyświetla obraz wewnątrz formantu Windows Forms PictureBox
. Wartość SizeMode
kontrolki jest ustawiona na Zoom
, aby obraz zawarty w PictureBox
był wyświetlany w prawidłowy sposób, bez względu na wymiary PictureBox
.Jak powinienem przetłumaczyć współrzędne obszaru ekranu na współrzędne miejsca na obraz w WinForms PictureBox?
Jest to doskonałe rozwiązanie do wizualnego wyglądu aplikacji, ponieważ można dowolnie zmieniać rozmiar okna, a obraz będzie zawsze wyświetlany przy użyciu najlepszego dopasowania. Niestety, muszę również obsługiwać zdarzenia kliknięcia myszą w polu graficznym i potrzebować możliwości tłumaczenia ze współrzędnych przestrzeni ekranu na współrzędne przestrzeni obrazu.
Wygląda na to, że z przestrzeni ekranu można łatwo przetłumaczyć, aby kontrolować przestrzeń, ale nie widzę żadnego oczywistego sposobu na przekształcenie z przestrzeni kontrolnej na przestrzeń obrazu (np. Współrzędna piksela w obrazie źródłowym skalowanym w pudełko ze zdjęciami).
Czy istnieje prosty sposób, aby to zrobić, czy powinienem po prostu skopiować skalowanie matematyczne, którego używają wewnętrznie, aby ustawić obraz i samemu wykonać tłumaczenie?
Witam, byłoby miło zobaczyć próbkę kodu, który złożyliście razem, jeśli nadal macie go pod ręką. –
Jasne, zmieniłem to w moją odpowiedź – fastcall