private StackPanel CreateDoorControl(FloorDoorViewModel floorDoor) { var carBitmap = new BitmapImage(new Uri("pack://application:,,,/Images/device/door.png")); var carImg = new Image(); carImg.Source = carBitmap; carImg.Width = 25; carImg.Height = 20; var panel = new StackPanel() { Orientation = Orientation.Horizontal }; panel.Children.Add(carImg); panel.Children.Add(new TextBlock() { Text = floorDoor.DoorName, FontSize = 16 }); panel.DataContext = floorDoor; panel.PreviewMouseLeftButtonDown += Door_PreviewMouseLeftButtonDown; Canvas.SetLeft(panel, floorDoor.LocationX * MyCanvas.ActualWidth); Canvas.SetTop(panel, floorDoor.LocationY * MyCanvas.ActualHeight); return(panel); }
private StackPanel CreateDoorControl(FloorDoorViewModel floorDoor, Canvas canvas) { var carBitmap = new BitmapImage(new Uri("pack://application:,,,/Images/device/door.png")); var carImg = new Image(); carImg.Source = carBitmap; carImg.Width = 25; carImg.Height = 20; var panel = new StackPanel() { Orientation = Orientation.Horizontal }; panel.Children.Add(carImg); panel.Children.Add(new TextBlock() { Text = floorDoor.DoorName, FontSize = 16 }); panel.DataContext = floorDoor; var menu_open = new MenuItem() { Header = "开门", Tag = panel }; var menu_close = new MenuItem() { Header = "关门", Tag = panel }; var menu_keepOpen = new MenuItem() { Header = "常开门", Tag = panel }; var menu_keepClose = new MenuItem() { Header = "常关门", Tag = panel }; var menu_autoControl = new MenuItem() { Header = "自动控制", Tag = panel }; var menu_cancleAlarm = new MenuItem() { Header = "取消报警", Tag = panel }; var menu_viewStuffList = new MenuItem() { Header = "门内人员列表", Tag = panel }; menu_open.Click += (sender, args) => UpdateDoorState(sender, DoorControlOption.Open); menu_close.Click += (sender, args) => UpdateDoorState(sender, DoorControlOption.Close); menu_keepOpen.Click += (sender, args) => UpdateDoorState(sender, DoorControlOption.KeepOpen); menu_keepClose.Click += (sender, args) => UpdateDoorState(sender, DoorControlOption.KeepClose); menu_autoControl.Click += (sender, args) => UpdateDoorState(sender, DoorControlOption.Auto); menu_cancleAlarm.Click += (sender, args) => UpdateDoorState(sender, DoorControlOption.CancelAlarm); menu_viewStuffList.Click += (sender, args) => ViewStuff(sender); panel.ContextMenu = new ContextMenu(); panel.ContextMenu.Items.Add(menu_open); panel.ContextMenu.Items.Add(menu_close); panel.ContextMenu.Items.Add(menu_keepOpen); panel.ContextMenu.Items.Add(menu_keepClose); panel.ContextMenu.Items.Add(menu_autoControl); panel.ContextMenu.Items.Add(menu_cancleAlarm); panel.ContextMenu.Items.Add(menu_viewStuffList); Canvas.SetLeft(panel, floorDoor.LocationX * canvas.ActualWidth); Canvas.SetTop(panel, floorDoor.LocationY * canvas.ActualHeight); return(panel); }