protected virtual void OnCommandReceived(UElementMenu sender, ElementMenuCommandReceivedEventArgs args) { switch (args.Command) { case "ShutDown": UTableHelper.Shutdown(0); break; case "DesignWindow": { ObjectCreateParameter loadAppParam = new ObjectCreateParameter(typeof(DesignWindow)); IObject appLoader = UTableHelper.CreateObject(loadAppParam, this); PlaceAppLoader(appLoader, this._menuPositionList[sender]); } break; case "DirectWindow": //TODO break; case "ResetTabletop": //TODO break; case "CloseMenu": break; } }
private void startTimer_Elapsed(object sender, EventArgs e) { DispatcherTimer timer = sender as DispatcherTimer; timer.Stop(); if (_holdFingerList.ContainsValue(timer)) { int finger = GetFingerIDByTimer(timer); UElementMenu menu = new UElementMenu(); UElementMenuItem shutItem = new UElementMenuItem(); shutItem.Header = "Shut down"; shutItem.Command = "ShutDown"; UElementMenuItem resetItem = new UElementMenuItem(); resetItem.Header = "Reset tabletop"; resetItem.Command = "ResetTabletop"; UElementMenuItem loadItem = new UElementMenuItem(); loadItem.Header = "Design Window"; loadItem.Command = "DesignWindow"; UElementMenuItem procudeItem = new UElementMenuItem(); procudeItem.Header = "Direct Window"; procudeItem.Command = "DirectWindow"; UElementMenuItem nothingItem = new UElementMenuItem(); nothingItem.Header = "Close Menu"; nothingItem.Command = "CloseMenu"; menu.Items.Add(shutItem); menu.Items.Add(loadItem); menu.Items.Add(resetItem); menu.Items.Add(procudeItem); menu.Items.Add(nothingItem); menu.MaxAngle = 320; Random r = new Random(); menu.Orientation = r.NextDouble() * 360; Canvas.SetLeft(menu, _holdFingerPositionList[finger].X - 30); Canvas.SetTop(menu, _holdFingerPositionList[finger].Y - 30); menu.Opacity = 1; menu.Width = 60; menu.Height = 60; _menuPositionList.Add(menu, _holdFingerPositionList[finger]); _menuList.Add(menu, finger); _holdFingerList.Remove(finger); _holdFingerPositionList.Remove(finger); PopupStage.Children.Add(menu); PiePiece pie = timer.Tag as PiePiece; pie.BeginAnimation(PiePiece.WedgeAngleProperty, null); PopupStage.Children.Remove(pie); menu.Loaded += new RoutedEventHandler(menu_Loaded); menu.SubmenuClosed += new EventHandler(menu_SubmenuClosed); menu.CommandReceived += new ElementMenuCommandReceivedEventHandler(OnCommandReceived); } }