WPF Border KeyBoard KeyDown Event Handler feuert nich?



  • Hallo,

    ich leute mir ne Klasse von Border ab, und will da das KeyDown ereignis verwenden.. aber er regiart nich auf key down...Muss das ding irgendwie den Focus haben nehm ich an oder.. er soll drauf reagieren wenn der mauszeiger in dem bereich ist.. habe es nun so gelöst.. gibts evt. ne bessere lösung?

    public abstract class Enviroment3D : Border
    {
    	public Enviroment3D(){
    
    this.Child = _viewer = new Viewport3D(); 
    
    			//Platzhalter index 0 (Scene)
    			_viewer.Children.Add(new ContainerUIElement3D());
    
    			//Platzhalter index 1 (Lights)
    			_viewer.Children.Add(new ModelVisual3D());
    
    			//Hintergrund setzen um MouseTargetBound einzugrenzen (Geht nur wenn hintergrund definiert ist)
    			this.Background = Brushes.White.Clone();
    
    			//MouseEvents an Kameranavigation weiterleiten
    			MouseMove += new MouseEventHandler((s, e) =>
    			{
    				SceneCamera.OnMouseMove(this, e);
    			});
    
    			MouseWheel += new MouseWheelEventHandler((s, e) =>
    			{
    				SceneCamera.OnMouseWheel(this, e);
    			});
    // GEHT NICHT
    			//KeyBoard events
    			KeyDown += new KeyEventHandler((s, e) =>
    			{
    				SceneCamera.OnKeyboard(this, e);
    			});
    		//GEHT	Keyboard.AddKeyDownHandler(Application.Current.MainWindow, new KeyEventHandler((s, e) => 
    			{
    				if(this.IsMouseOver)
    					SceneCamera.OnKeyboard(this, e);
    			}));
    }
    ...}
    


  • SceneCamera.Focusable = true;
    Keyboard.Focus(SceneCamera);


Anmelden zum Antworten