Pertama-tama perlu diingat bahwa dengan rasterisasi secara teknis tidak ada yang namanya kemerdekaan resolusi sejati. Dengan perbesaran yang cukup tinggi, masing-masing texels akan mulai terlihat. Satu-satunya solusi untuk ini adalah menulis sistem grafik vektor.
Yang sedang dikatakan ada beberapa langkah untuk menciptakan sistem independen resolusi berbasis raster yang kuat: ukuran, sistem koordinat, dan tata letak.
Untuk mengukur dan memposisikan kita perlu menggunakan beberapa set unit yang mempertahankan rasio terhadap resolusi aplikasi yang sebenarnya. Dalam hal ini mari kita gunakan inci karena saya orang Amerika dan Anda dapat skala elemen dengan DPI (titik per inci). Misalnya, aplikasi Anda berjalan pada 800x600. Default Windows DPI adalah 96 sehingga itu berarti aplikasi memiliki resolusi (800/96) x (600/96) inci atau 8,33x6,25 inci.
Karena Anda harus dapat bekerja dengan, paling tidak, rasio aspek 4: 3 dan 16: 9 bagaimana Anda menangani sistem koordinat layar Anda menjadi sedikit rumit. Apa yang saya sarankan lakukan adalah meletakkan (0,0) di tengah area tampilan (serta jendela dan kontrol). Ini bekerja dengan baik karena jika Anda meletakkan (0,0) di sudut maka ketika sudut itu bergerak berdasarkan resolusi dan rasio aspek itu akan menerjemahkan semua sprite Anda sedangkan pusat layar akan selalu menjadi pusat layar tidak masalah perangkat. Melanjutkan contoh kita dengan 800x600 ini akan menghasilkan sistem koordinat yang (kiri ke kanan) -4,165in menjadi 4,165in dan (atas ke bawah) 3,125in hingga -3,125in.
Jadi pada saat ini Anda memiliki sistem UI independen DPI dengan item yang akan selalu berada di tempat yang sama relatif terhadap pusat layar - tidak cukup resolusi independen. Untungnya, apa yang memungkinkan Anda melakukan DPI adalah skala UI dengan skala DPI berdasarkan beberapa heuristik. Misalnya kita dapat skala DPI menggunakan resolusi vertikal sebagai heuristik kami. Jika 800x600 adalah 96 DPI maka kami akan menggunakan 123 DPI untuk 1024x768 atau 115 DPI untuk 1280x720.
Terakhir Anda perlu membangun sistem tata letak yang menangani posisi absolut maupun posisi relatif. Contoh terbaik dari ini adalah WPF dan web. Anda dapat menentukan bahwa kontrol / kotak mengisi beberapa% dari elemen induk sambil memasukannya ke tepi bersama dengan banyak opsi tata letak otomatis lainnya yang berguna. Semua ini bersama-sama akan menghasilkan sistem UI yang mampu terlihat hampir sama di banyak resolusi dan rasio aspek yang berbeda.
Untuk meringkas, saya sangat menyarankan Anda mempelajari WPF karena hampir semua ini dilakukan kecuali itu mempertahankan asal di sistem koordinat sudut kiri atas dan tidak secara otomatis skala DPI berdasarkan resolusi vertikal.