public BoxSetupWizardDialog(Screen screen) : base(screen) { viewModel = new BoxSetupViewModel(screen.Game); DataContext = viewModel; // 開く際に openAnimation で Width を設定するので 0 で初期化します。 Width = 0; ShadowOffset = new Vector2(4); Padding = new Thickness(16); Overlay.Opacity = 0.5f; tabControl = new TabControl(screen) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; Content = tabControl; attentionTabItem = new AttentionTabItem(Screen); attentionTabItem.FocusToDefault(); attentionTabItem.AgreeSelected += OnAttentionTabItemAgreeSelected; attentionTabItem.CancelSelected += OnAttentionTabItemCancelSelected; tabControl.Items.Add(attentionTabItem); tabControl.SelectedIndex = 0; authorizationTabItem = new AuthorizationTabItem(Screen); authorizationTabItem.NextSelected += OnAuthorizationTabItemNextSelected; authorizationTabItem.BackSelected += OnAuthorizationTabItemBackSelected; tabControl.Items.Add(authorizationTabItem); accessTabItem = new AccessTabItem(Screen); accessTabItem.NextSelected += OnAccessTabItemNextSelected; accessTabItem.BackSelected += OnAccessTabItemBackSelected; tabControl.Items.Add(accessTabItem); prepareFolderTreeTabItem = new PrepareFolderTreeTabItem(Screen); prepareFolderTreeTabItem.CreateSelected += OnPrepareFolderTreeTabItemCreateSelected; prepareFolderTreeTabItem.CancelSelected += OnPrepareFolderTreeTabItemCancelSelected; tabControl.Items.Add(prepareFolderTreeTabItem); saveSettingsTabItem = new SaveSettingsTabItem(Screen); saveSettingsTabItem.YesSelected += OnSaveSettingsTabItemYesSelected; saveSettingsTabItem.NoSelected += OnSaveSettingsTabItemNoSelected; tabControl.Items.Add(saveSettingsTabItem); finishTabItem = new FinishTabItem(Screen); finishTabItem.UploadSelected += OnFinishTabItemUploadSelected; finishTabItem.CancelSelected += OnFinishTabItemCancelSelected; tabControl.Items.Add(finishTabItem); openAnimation = new FloatLerpAnimation { Action = (current) => { Width = current; }, From = 0, To = 480, Duration = TimeSpan.FromSeconds(0.1f) }; Animations.Add(openAnimation); }
/// <summary> /// インスタンスを生成します。 /// </summary> /// <param name="screen"></param> public PredefinedColorDialog(Screen screen) : base(screen) { PredefinedColors = new List<PredefinedColor>(); PredefinedColors.AddRange(PredefinedColor.PredefinedColors); PredefinedColors.Sort((x, y) => x.Name.CompareTo(y.Name)); // 開く際に openAnimation で Width を設定するので 0 で初期化します。 Width = 0; ShadowOffset = new Vector2(4); Padding = new Thickness(16); var stackPanel = new StackPanel(screen) { Orientation = Orientation.Vertical, HorizontalAlignment = HorizontalAlignment.Stretch }; Content = stackPanel; tab = new TabControl(screen) { SelectedIndex = 0 }; stackPanel.Children.Add(tab); predefinedColorGrid = new PredefinedColorGrid(screen, this) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; tab.Items.Add(predefinedColorGrid); predefinedColorList = new PredefinedColorList(screen, this) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; tab.Items.Add(predefinedColorList); var separator = ControlUtil.CreateDefaultSeparator(screen); stackPanel.Children.Add(separator); viewModeButton = ControlUtil.CreateDefaultDialogButton(screen, Strings.ListViewModeButton); viewModeButton.Click += OnViewModeButtonClick; stackPanel.Children.Add(viewModeButton); var sortByNameButton = ControlUtil.CreateDefaultDialogButton(screen, Strings.SortByNameButton); sortByNameButton.Click += OnSortByNameClick; stackPanel.Children.Add(sortByNameButton); var sortByColorButton = ControlUtil.CreateDefaultDialogButton(screen, Strings.SortByColorButton); sortByColorButton.Click += OnSortByColorClick; stackPanel.Children.Add(sortByColorButton); cancelButton = ControlUtil.CreateDefaultDialogButton(screen, Strings.CancelButton); cancelButton.Click += (Control s, ref RoutedEventContext c) => Close(); stackPanel.Children.Add(cancelButton); const float windowWidth = 400; openAnimation = new FloatLerpAnimation { Action = (current) => { Width = current; }, From = 0, To = windowWidth, Duration = TimeSpan.FromSeconds(0.1f) }; Animations.Add(openAnimation); // 閉じる場合には closeAnimation を実行し、その完了で完全に閉じます。 closeAnimation = new FloatLerpAnimation { Action = (current) => { Width = current; }, From = windowWidth, To = 0, Duration = TimeSpan.FromSeconds(0.1f) }; closeAnimation.Completed += (s, e) => base.Close(); Animations.Add(closeAnimation); }
public MainMenuWindow(Screen screen) : base(screen) { // 開く際に openAnimation で Width を設定するので 0 で初期化します。 Width = 0; Height = 480; Padding = new Thickness(16); var stackPanel = new StackPanel(screen) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Top, Orientation = Orientation.Vertical }; Content = stackPanel; var title = new TextBlock(screen) { Text = Strings.MainMenuTitle, Padding = new Thickness(4), ForegroundColor = Color.Yellow, BackgroundColor = Color.Black, HorizontalAlignment = HorizontalAlignment.Stretch, TextHorizontalAlignment = HorizontalAlignment.Left, ShadowOffset = new Vector2(2) }; stackPanel.Children.Add(title); var separator = ControlUtil.CreateDefaultSeparator(screen); stackPanel.Children.Add(separator); tab = new TabControl(screen) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Top, SelectedIndex = mainMenuIndex }; stackPanel.Children.Add(tab); var mainMenuPanel = CreateMainMenuPanel(); tab.Items.Add(mainMenuPanel); var modeMenuPanel = CreateModeMenuPanel(); tab.Items.Add(modeMenuPanel); var lodMenuPanel = CreateLodMenuPanel(); tab.Items.Add(lodMenuPanel); openAnimation = new FloatLerpAnimation { Action = (current) => { Width = current; }, From = 0, To = 240, Duration = TimeSpan.FromSeconds(0.1f) }; Animations.Add(openAnimation); // 閉じる場合には closeAnimation を実行し、その完了で完全に閉じます。 closeAnimation = new FloatLerpAnimation { Action = (current) => { Width = current; }, From = 240, To = 0, Duration = TimeSpan.FromSeconds(0.1f) }; closeAnimation.Completed += (s, e) => { base.Close(); // Screen は最前面の Window をアクティブにするので、 // 強制的に Desktop をアクティブにします。 //Screen.Desktop.Activate(); }; Animations.Add(closeAnimation); // デフォルト フォーカス。 loadButton.Focus(); }