Proc mi nefunguje udalost KeyDown navazana na Canvas ve WPF?   otázka

C#

Dobry den,

moc bych Vas chtěl požádat o radu, protože by mi to pomohlo. v XAML mam :

<Window x:Class="Program.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/..."

xmlns:x="http://schemas.microsoft.com/winfx/2006/..."

Title="MainWindow" Height="350" Width="525">

<Canvas Name="mainCanvas" KeyDown="OnKeyDown">

<Rectangle Canvas.Left="238" Canvas.Top="273" Height="14" Name="rctPaddle" Stroke="Black" Width="56" />

</Canvas>

</Window>

a v kodu mam:

private void OnKeyDown(object sender, KeyEventArgs e)

{

MessageBox.Show("abc");

}

JENZE TO NEFUNGUJE, message box se nezobrazi.

Nevite prosim někdo proc?

Budu rad za jakoukoliv připomínku ci radu. Dekuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Může to být tím, že Canvas na sobě v době, kdy mačkáte tlačítko, nemá focus. Zkuste (jen pro otestování) po spuštění okna v code-behindu zavolat mainCanvas.Focus();. Tato metoda se pokusí předat focus na daný canvas, který by pak měl danou událost vyvolat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Canvas má defaultně nastavenou vlastnost Focusable na false.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback