Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Full screen app. v C#

Zdar,
je nějaká možnost, jak udělat aplikaci ve full screenu s připůsobením rozlišení pohodlně? Nebo musím při inicializaci programu zjistit rozlišení (Screen.PrimaryScreen.Size...) a na základě toho udělat ideální multiplikátor a každou buttonku, label, text v labelu, atd. atd. násobit tím multiplikátorem?

Předem díky

Předmět Autor Datum
Pokud tu aplikace budeš dělat ve WPF, tak ti to tuhle práci dost usnadní.
Wikan 22.07.2013 22:32
Wikan
Jedu ve visualu 2008 express edition, WPF tam mám, přečetl sem si úvod - viz níže. Nebráním se to na…
Odoaker 22.07.2013 23:16
Odoaker
No a co tam teda bude za systém? Aby ti tam vůbec běžela nějaký rozumná verze .net frameworku.
Wikan 23.07.2013 07:36
Wikan
To zavisi snad od toho ze kto kresli co a co chces mat roztiahnute a co ne atd. P.S> nechapem co my…
MM.. 22.07.2013 23:15
MM..
?? Každý má jiný monitor, já umím jen konzoli a windowsácký okna zatím. S pomocí Borderstyle=none a…
Odoaker 22.07.2013 23:24
Odoaker
CO je v tom okne a z toho vyplyva ze KTO to kresli. Ked pouzivas nejake dialogove komponenty (common…
MM.. 22.07.2013 23:28
MM..
Ak myslis ze ako nejaky jasnovidecky fungujuci zazracny system niekde ti bude premiestnovat buttony…
MM.. 22.07.2013 23:29
MM..
V C# mozes pouzit este docking, ak pouzivas dialogove komponenty http://www.techrepublic.com/article…
MM.. 22.07.2013 23:45
MM..
J, pravděpodobně se budou hodit jen ty win-blbosti, proto sem v prvním topicu zmiňoval právě labely,…
Odoaker 23.07.2013 00:21
Odoaker
Tak sa to nerobi. Je na to milion dovodov (okrem ineho ten ze pismena sa spravidla nezoomuju, ptz vy…
MM.. 23.07.2013 00:34
MM..
Spíš bych to přirovnal ke hře, s tím oknem nebudu hýbat, to se prostě zapne ve fullscreenu a z toho…
Odoaker 23.07.2013 00:47
Odoaker
Musis urobit resizovatelny dialog, tak jak je to tam na MSDN napisane. Komponenty sa daju prichytava…
MM.. 23.07.2013 00:52
MM..
Nejlepší je stejně použít správný layouty a správně je "zadockovat", máš pak okno dynamický a nemusí… poslední
kamil5 23.07.2013 15:56
kamil5

Jedu ve visualu 2008 express edition, WPF tam mám, přečetl sem si úvod - viz níže. Nebráním se to naučit, ale mám problém, že budu dělat aplikaci pro sestru do školy a ta to bude promítat dětem. Na tý škole, jestli budou XP, tak to bude zázrak. Proto se nějak bojím, že to udělám a nakonec jí to tam nepůjde vůbec.

Windows Presentation Foundation aplikace jsou spustitelné jak na Windows Vista, kde .NET Framework 3.0 je již předinstalován, tak na Windows XP SP2 a Windows Server 2003, kde je potřeba .NET Framework 3.0 doinstalovat. Na ostatních OS není možné tyto aplikace spouštět.

Zdroj: http://www.vyvojar.cz/Articles/445-0-wpf-uvod.aspx

To zavisi snad od toho ze kto kresli co a co chces mat roztiahnute a co ne atd.

P.S> nechapem co myslis tou "aplikaci ve fullscreenu", ak tam ma byt stejna vec jak v okne tak ten fullscreen sa nijak nelisi od lubovolneho resizovania okna userom (t.j. programujes reakciu na WM_SIZE a reagujes na akukolvek size)

CO je v tom okne a z toho vyplyva ze KTO to kresli. Ked pouzivas nejake dialogove komponenty (common controls) tak to kresli win a ty mu musis ako reakciu na WM_SIZE spravne umiestnit a resizovat komponenty ktore si povytvaral.
Ak si kreslis obsah okna sam z nejakej bitmapy tak pouzivas urcite BitBlt a ten vie resizovat.

J, pravděpodobně se budou hodit jen ty win-blbosti, proto sem v prvním topicu zmiňoval právě labely, buttony. Myslel sem, že bude umět vše zmenšit/zvětšit. Pokud udělám form v 640x480, tak by ho uměl resizovat sám, vše ve stejném poměru na 1440x1080, full HD, atd.

Tak sa to nerobi. Je na to milion dovodov (okrem ineho ten ze pismena sa spravidla nezoomuju, ptz vyznam resizovania je aby som videl viac pismen. Jak by sa ti pacilo keby si videl tu v poradni pol prispevku roztiahnes okno a furt vidis len pol prispevku ale 2x vacsie pismena :).

Pouzi tie docking property, to si mozes aj naklikat v tom editore dialogu ci co to tam mas

Spíš bych to přirovnal ke hře, s tím oknem nebudu hýbat, to se prostě zapne ve fullscreenu a z toho se to i vypne. Jelikož se to bude promítat, tak velikost je důležitá a když to udělám na 640x480 a měli by tam 2000x*, tak to bude malinký. Zkusím a uvidím, jak to dopadne.

Musis urobit resizovatelny dialog, tak jak je to tam na MSDN napisane. Komponenty sa daju prichytavat o okraje, sirka definovat aj v % tusim, atd. To si musis premysliet ty ze ktory button sa ma kam posuvat podla ktoreho okraja, a co ma mat pevnu sirku a co ma mat dynamicku sirku atd, to je tvoje rozhodnutie a malo by to ist nastavit aj v tom GUI (= vyhoda tych controls v C#)
Fullscreen neni ziadna pevna velkost, co sam aj chapes. Takze si to hned aj otestujes tak ze zoberes okraj okna mysou a budes si menit velkost okna a tak hned otestujes jak to bude na 640x480, 800x600, atd. Maximalizovane okno neni ziadne fullscreen (fullscreen je nieco uplne ine a neni to pre controls ale napr. overlay pre film alebo hry), maximalizovane okno je len roztiahnute okno na nejaku velkost (uplne stejne jak keby si ho roztiahol mysou)

Nejlepší je stejně použít správný layouty a správně je "zadockovat", máš pak okno dynamický a nemusíš řešit roztahování a zmenšování. Resp. musíš to řešit a skoro to zakázat, protože když někdo roztáhne okno, který má komponenty staticky rozmístěné a vyjede mu např. vpravo velký šedý pruh a obsah okna zůstane pořád natvrdo vlevo, není to moc hezký pohled. Ve visual studiu se to dá přece pěkně naklikat, to bys měl mít hned.

Zpět do poradny Odpovědět na původní otázku Nahoru