/// <summary> /// 状态切换UI /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void OnStateChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { EditorButton editorButton = sender as EditorButton; EditorButtonStatus buttonStatus = (EditorButtonStatus)e.NewValue; switch (buttonStatus) { case EditorButtonStatus.Editoring: editorButton.btnEditor.Visibility = Visibility.Collapsed; editorButton.txtName.Visibility = Visibility.Visible; editorButton.txtName.Focus(); editorButton.txtName.Select(editorButton.txtName.Text.Length, 0); break; case EditorButtonStatus.Reading: editorButton.btnEditor.Visibility = Visibility.Visible; editorButton.txtName.Visibility = Visibility.Collapsed; editorButton.btnEditor.Focus(); break; } }
/// <summary> /// 失去焦点退出编辑 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtName_LostFocus(object sender, RoutedEventArgs e) { EditorButtonStatus = EditorButtonStatus.Reading; }
/// <summary> /// 编辑按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEditor_Click(object sender, RoutedEventArgs e) { EditorButtonStatus = EditorButtonStatus.Editoring; }