private void OpenActivateCharacterWidgetPopup(ManagedCharacter activatedCharacter) { if (!popupService.IsOpen("ActiveCharacterWidgetView")) { System.Windows.Style style = ControlUtilities.GetCustomWindowStyle(); double minwidth = 80; style.Setters.Add(new Setter(Window.MinWidthProperty, minwidth)); var desktopWorkingArea = System.Windows.SystemParameters.WorkArea; double left = desktopWorkingArea.Right - 500; double top = desktopWorkingArea.Bottom - 80 * activatedCharacter.CharacterActionGroups.Count; object savedPos = popupService.GetPosition("ActiveCharacterWidgetView", activatedCharacter.Name); if (savedPos != null) { double[] posArray = (double[])savedPos; left = posArray[0]; top = posArray[1]; } style.Setters.Add(new Setter(Window.LeftProperty, left)); style.Setters.Add(new Setter(Window.TopProperty, top)); popupService.ShowDialog("ActiveCharacterWidgetView", ActiveCharacterWidgetViewModel, "", false, null, new SolidColorBrush(Colors.Transparent), style, WindowStartupLocation.Manual); ActivateWindow(ActiveWindow.ACTIVE_CHARACTER); } }