Nietypowe pytanie dziś mam, na które Google nie zna odpowiedzi, a przynajmniej nic na ten temat nie znalazłem; Ciężko to cholerstwo opisać, jednak spróbujmy;
Załóżmy, że mam formularz z jakąś zawartością i zajmuje on dokładnie 90% wysokości i 90% szerokości ekranu (z marginesami ze wszystkich stron); Zaprojektowany jest na ekranie o rozdzielczości załóżmy 1024x768; Jeżeli uruchomię program, na ekranie zobaczę formularz z odpowiednimi wymiarami; Natomiast jeśli uruchomię program na ekranie, który ma większą rozdzielczość, wymiary formularza zostaną takie same (w pikselach), jednak procentowo formularz zajmować będzie mniej niż 90% szerokości i wysokości ekranu i to jest normalne;
Jeżeli w kodzie programu zapiszę instrukcje, które dostosują rozmiar okna do rozdzielczości, okno zawsze będzie zajmować 90% szerokości i wysokości, ale zmienią się wymiary liczone w pikselach - to także jest normalne;
Interesuje mnie inny efekt; Chciałbym aby formularz zawsze zajmował przykładowo 90% szerokości i wysokości ekranu, ale żeby jego pikselowe wymiary nie zmieniły się; Jeśli proporcje ekranu są inne (np. zamiast 4:3 są 16:9) to zmieni się rozmiar marginesów po bokach i procentowa szerokość formularza; Chodzi o taki sam efekt, jaki obsługiwany jest przez tryb graficzny - bez względu na proporcje ekranu i jego typ, możliwe jest uruchomienie trybu graficznego np. 800x600 i obraz zawsze rozciągany jest co najmniej na pełną wysokość ekranu (zmienia się DPI);
Interesujący mnie efekt ilustruje poniższy obrazek:
Rozmiar okna dostosowywany jest do rozdzielczości, proporcje formularza oraz zawartości pozostają niezmienne;
Czyli podsumowując, chodzi o efekt zoomu - program pobierałby rozdzielczość ekranu i odpowiednio zoomował formularz i jego zawartość; Jest to zupełnie coś innego niż skalowanie, bo zawartość okna nie była by rozciągana (zmieniając pikselowe wymiary komponentów), a powiększana na ekranie, według obliczonego mnożnika; Taki efekt wykorzystują m.in. aplikacje Flash - bez względu na rozdzielczość ekranu (i wymiary obszaru roboczego przeglądarki), zawsze dostosowują swój rozmiar, zachowując oryginalne proporcje elementów aplikacji;
Czy takie coś jest w ogóle możliwe? Zoomowanie okna zamiast powiększania jego pikselowego rozmiaru, bez zmiany rozdzielczości ekranu?
Wiem, że brzmi to kosmicznie, jednak może istnieje jakiś sposób na wykonanie tego.