1. 程式人生 > >WPF 窗體基類實現的體驗及實現回車到下一控制元件

WPF 窗體基類實現的體驗及實現回車到下一控制元件

原文: WPF 窗體基類實現的體驗及實現回車到下一控制元件

1、窗體基類實現參考

http://weblogs.asp.net/psheriff/archive/2009/11/02/creating-a-base-window-class-in-wpf.aspx

2、基類不能像WinForm窗體一樣寫Loaded事件(寫了也是不執行的)

沒辦法只好寫一個方法讓所有繼承者呼叫了

3、回車鍵改為TAB的實現

        /// <summary>
        /// 將回車改為TAB
        /// </summary>
        /// <param name="e"></param>
        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == System.Windows.Input.Key.Enter)
            {
                // MoveFocus takes a TraveralReqest as its argument.
                TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
                // Gets the element with keyboard focus.
                UIElement elementWithFocus = Keyboard.FocusedElement as UIElement;
                // Change keyboard focus.
                if (elementWithFocus != null)
                {
                    elementWithFocus.MoveFocus(request);
                }
                e.Handled = true;
            }
            base.OnKeyDown(e);
        }


歡迎訪問:http://121.18.78.216 適易查詢分析、工作流、內容管理及專案管理演示平臺