Új hozzászólás Aktív témák

  • Tomi_78

    tag

    Sziasztok!
    Mivel nem találtam kérdésemnek megfelelő helyet, ezért nyitottam ezt a fórumot neki, de persze mások is feltehetik itt kérdéseiket (ha esetleg valaki mégis tudja, hogy egy már létező téma lenne a tökéletes hely neki, hát elnézést, és nyugodtan áthelyezhető).
    Szóval, ide nem konkrét programnyelvekkel, hanem általános programozási problémákkal kapcsolatos kérdéseket várok.
    Ami pedig nekem vár megválaszolásra, az a következő kérdés: alkalmazásom ablakának átméretezésekor a benne lévő grafikai elemeket helyezném át úgy, hogy az új mérethez alkalmazkodjon az elhelyezkedésük. Tehát ami középen volt, az maradjon középen, ami szélebbre, az az új mérethez arányosítottan szélebbre.
    A következő kódot írtam hozzá C#-ban, de nem nagyon hozza a várt eredményt, pl. az ablak kisebbítésekor minden a bal szélére vándorol:
    void MainFormResize(object sender, EventArgs e)
    {
       int regiszelszazalek,regimagszazalek;
                
       foreach (var jatelem in jatelemeilista) {
           //jatelem.xhely*=Width/ablakszel; //Ezek a legrosszabbak!
           //jatelem.yhely*=Height/ablakmag;
           regiszelszazalek=(100*jatelem.xhely)/ablakszel; //Ez sem tökéletes.
           regimagszazalek=(100*jatelem.yhely)/ablakmag;
           jatelem.xhely=(Width*regiszelszazalek)/100;
           jatelem.yhely=(Height*regimagszazalek)/100;
       }
       Invalidate();
       ablakszel=Width;
       ablakmag=Height;
    }

    Mi lehet a baj vele? Elméletileg mindkettő jónak tűnik, de mégsem azok. Esetleg van valami harmadik és tökéletes megoldás?

Új hozzászólás Aktív témák