Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: WPF konec změn velikosti okna

C# .NET .NET (C# a Visual Basic) WPF konec změn velikosti okna American English version English version

Aktivity (1)
Avatar
martinsakra
Redaktor
Avatar
martinsakra:29.12.2013 14:04

Zdravim
Mam aplikaci ve WPF a dovoluji měnit uživateli velikost okna a podle té výšky upravuju velikost canvasu. Ale obsah canvasu jsou Rectangly a já bych rád měnil jejich velikost,ale až potom co uživatel dokončil změnu velikosti okna. Ne každý frame během změn, protože to by bylo dost nepoužitelný.
Zatím jsem našel jen tohle:

public MyUserControl()
{
    _resizeTimer.Tick += _resizeTimer_Tick;
}

DispatcherTimer _resizeTimer = new DispatcherTimer { Interval = new TimeSpan(0, 0, 0, 0, 1500), IsEnabled = false };

private void UserControl_SizeChanged(object sender, SizeChangedEventArgs e)
{
    _resizeTimer.IsEnabled = true;
    _resizeTimer.Stop();
    _resizeTimer.Start();
}

void _resizeTimer_Tick(object sender, EventArgs e)
{
    _resizeTimer.IsEnabled = false;

    //Do end of resize processing
}

což jepřinejmenším dosti šroubované,ale asi použitelné
Nějaké nápady

Odpovědět 29.12.2013 14:04
Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na martinsakra
David Čápka:29.12.2013 14:08

Zapisuj si někam velikost okna. Jakmile bude jiná než ta uložená, provedeš potřebné změny a aktualizuješ uloženou velikost.

Nahoru Odpovědět 29.12.2013 14:08
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lako
Člen
Avatar
Lako:30.12.2013 18:42

Já bych se asi zaměřil na nějakou událost okna, která je volána po dokončení změny velikosti... Samozřejmě budeš muset nějak zamezit, aby se ti to zvětšovalo v průběhu a to by šlo třeba tak, že canvasu nastavíš přesnou velikost v pixelech, pak hýbneš oknem, nastavíš jí na auto, nebo *, ona se ti patřičně zvětší a pak zase na px....
Nevím jestli existuje přesně událost, která se volá po (dokončení) zvětšení... ale napadá mě:
ManipulacionCom­pleted, MouseLeftButto­nUp,LostMouse­Capture, nebo nějak poštrachat to SizeChanged a určitě toho bude víc...

 
Nahoru Odpovědět 30.12.2013 18:42
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 3 zpráv z 3.