private void SelectOrOpenState(int stateIndex) { foreach (StateEditorTabItem item in stateTabControl.Items) { if (item.StateEditor.StateIndex == stateIndex) { item.IsSelected = true; UpdateStateUi(); return; } } DmiEXState state = (DmiEXState)DmiEx.States[stateIndex]; StateEditor stateEditor = new StateEditor(this, stateIndex, state); StateEditorTabItem tItem = new StateEditorTabItem(stateEditor); stateTabControl.Items.Add(tItem); StackPanel sp = new StackPanel(); TextBlock txt = new TextBlock { Text = $"\"{state.Id}\"", VerticalAlignment = VerticalAlignment.Center }; state.IdChanged += (o, e) => { txt.Text = $"\"{state.Id}\""; }; sp.Orientation = Orientation.Horizontal; sp.Children.Add(txt); TabCloseButton cBtn = new TabCloseButton(tItem); cBtn.Click += CloseState; sp.Children.Add(cBtn); tItem.Header = sp; tItem.IsSelected = true; UpdateStateUi(); }
public StateEditorTabItem(StateEditor stateEditor) { StateEditor = stateEditor; Content = stateEditor; }