NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
jan.pichl
Člen
Avatar
jan.pichl:7.3.2017 21:33

Ahoj,
narazil jsem na zvláštnost kterou mě hlava nebere. Mám aplikaci která má dvě okna.

Při použití následujícího kódu se projeví změna velikosti na obou oknech, což je špatně protože objekt "cl.KeyboardWin­dowSize" je svázán pouze s druhým oknem.

cl.KeyboardWindowSize = new System.Windows.Size(Width = 100, Height =50);

Při použítí následujícího kódu se provede změna velikosti správně pouze na druhém okně

var ppp = new System.Windows.Size();
            ppp.Width = 100;
            ppp.Height = 50;
 cl.KeyboardWindowSize = ppp;

A dokonce při použití jen takto se provede změna velikosti prvního okna což by se už vůbec stát nemělo.

new System.Windows.Size(Width = 100, Height =50);

předem děkuji za případné vysvětlení tohoto chování.

 
Odpovědět
7.3.2017 21:33
Avatar
Odpovídá na jan.pichl
Michal Štěpánek:7.3.2017 22:06

Tady asi spíš bude hrát roli to, jak a kde tento zápis použiješ... Z toho cos napsal to příliš patrné není.

Nahoru Odpovědět
7.3.2017 22:06
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
HONZ4
Člen
Avatar
Odpovídá na jan.pichl
HONZ4:7.3.2017 22:14

pokud jsem to s těch fragmentů kódu pochopil správně, tak u prvního kódu nastavíš vlastní okno Width na 100 Height na 100 a pak nastavíš cl.KeyboardWin­dowSize taky na nově vzniklý rozměr 100x100.
U druhého kódu, vytvoříš nový rozměr, pak jej změníš na 100x100 a přiřadíš cl.KeyboardWin­dowSize.
U třetího změníš rozměry aktuálního okna na 100x50 a vytvoříš nový objekt Size

 
Nahoru Odpovědět
7.3.2017 22:14
Avatar
jan.pichl
Člen
Avatar
Odpovídá na Michal Štěpánek
jan.pichl:7.3.2017 22:16

V hlavním okně při obsloužení udásti z Controls.

Teď jsem ještě vyzkoušel novou aplikaci WPF s jedním tlačítkem.

private void button_Click(object sender, RoutedEventArgs e)
       {
           var tt = new System.Windows.Size(Width = 100, Height = 50);
       }

Nic jiného a výsledkem je změna velikosti okna aplikace.

 
Nahoru Odpovědět
7.3.2017 22:16
Avatar
jan.pichl
Člen
Avatar
Odpovídá na HONZ4
jan.pichl:7.3.2017 22:21

Jde mě o to že když vytvořím nový objekt System.Windows.Size rovnou s parametrama
Width a Height.

new System.Windows.Size(Width = 100, Height = 50);

Dojde vždy ke změně velikosti hlavního okna aplikace. Když ho však vytvořím bez parametrů.

new System.Windows.Size();

A ty pak přiřadím dodatečně hlavní okno se nezmění.

Editováno 7.3.2017 22:21
 
Nahoru Odpovědět
7.3.2017 22:21
Avatar
HONZ4
Člen
Avatar
Odpovídá na jan.pichl
HONZ4:7.3.2017 22:30

a co takto:

new System.Windows.Size(100, 50);
 
Nahoru Odpovědět
7.3.2017 22:30
Avatar
HONZ4
Člen
Avatar
HONZ4:7.3.2017 22:41

new System.Window­s.Size(Width = 100, Height = 50);

je ekvivalent:

this.Width = 100;
this.Height = 50;
new System.Window­s.Size(Width, Height);

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
7.3.2017 22:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.