Avatar
martinsakra
Redaktor
Avatar
martinsakra:

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:

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:

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.