---
title: "Ext.window.Window"
description: "xtype 为 window 的 Ext JS 原生组件参考。"
---

> Documentation Index
> Fetch the complete documentation index at: https://ag.879818327.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Ext.window.Window

源码定义：`ext-all-debug.js:91819`。分类：容器、面板与窗口。

## 创建示例

```javascript
var component = Ext.create("Ext.window.Window", {
  xtype: "window",
  alwaysFramed: true,
  ariaRole: 'dialog',
  autoRender: true,
  baseCls: Ext.baseCSSPrefix + 'window',
  renderTo: Ext.getBody()
});
```

## 属性

| 属性 | 类型 | 默认值 | 说明 | 配置示例 |
| --- | --- | --- | --- | --- |
| `alwaysFramed` | `Boolean` | `true` | 控制是否启用 `alwaysFramed` 行为。 | `alwaysFramed: true` |
| `ariaRole` | `String` | `'dialog'` | 组件在辅助技术中的 ARIA 角色。 | `ariaRole: 'dialog'` |
| `autoRender` | `Boolean` | `true` | 控制是否启用 `autoRender` 行为。 | `autoRender: true` |
| `baseCls` | `Mixed` | `Ext.baseCSSPrefix + 'window'` | 配置 `baseCls` 对应的 CSS 类名。 | `baseCls: Ext.baseCSSPrefix + 'window'` |
| `closable` | `Boolean` | `true` | 控制组件是否显示关闭操作。 | `closable: true` |
| `closeAction` | `String` | `'hide'` | 配置组件的 `closeAction` 选项。 | `closeAction: 'hide'` |
| `collapsible` | `Boolean` | `false` | 控制面板是否允许展开和收起。 | `collapsible: false` |
| `constrain` | `Boolean` | `false` | 控制是否启用 `constrain` 行为。 | `constrain: false` |
| `constrainHeader` | `Boolean` | `true` | 控制是否启用 `constrainHeader` 行为。 | `constrainHeader: true` |
| `dialog` | `Boolean` | `false` | 控制是否启用 `dialog` 行为。 | `dialog: false` |
| `draggable` | `Boolean` | `true` | 控制是否启用 `draggable` 行为。 | `draggable: true` |
| `expandOnShow` | `Boolean` | `true` | 控制是否启用 `expandOnShow` 行为。 | `expandOnShow: true` |
| `floating` | `Boolean` | `true` | 控制是否启用 `floating` 行为。 | `floating: true` |
| `ghost` | `Boolean` | `false` | 控制是否启用 `ghost` 行为。 | `ghost: false` |
| `hidden` | `Boolean` | `true` | 控制组件初始是否隐藏。 | `hidden: true` |
| `hideMode` | `String` | `'offsets'` | 配置组件的 `hideMode` 选项。 | `hideMode: 'offsets'` |
| `ignoreHeaderBorderManagement` | `Boolean` | `true` | 控制是否启用 `ignoreHeaderBorderManagement` 行为。 | `ignoreHeaderBorderManagement: true` |
| `initialAlphaNum` | `Mixed` | `/^[a-z0-9]/` | 配置组件的 `initialAlphaNum` 选项。 | `initialAlphaNum: /^[a-z0-9]/` |
| `isRootCfg` | `Object` | `{` | 配置组件的 `isRootCfg` 选项。 | `isRootCfg: {` |
| `isWindow` | `Boolean` | `true` | 控制是否启用 `isWindow` 行为。 | `isWindow: true` |
| `itemCls` | `Mixed` | `Ext.baseCSSPrefix + 'window-item'` | 配置 `itemCls` 对应的 CSS 类名。 | `itemCls: Ext.baseCSSPrefix + 'window-item'` |
| `maximizable` | `Boolean` | `false` | 控制是否启用 `maximizable` 行为。 | `maximizable: false` |
| `minHeight` | `Number` | `50` | 配置 `minHeight` 限制值。 | `minHeight: 50` |
| `minimizable` | `Boolean` | `false` | 控制是否启用 `minimizable` 行为。 | `minimizable: false` |
| `minWidth` | `Number` | `50` | 配置 `minWidth` 限制值。 | `minWidth: 50` |
| `overlapHeader` | `Boolean` | `true` | 控制是否启用 `overlapHeader` 行为。 | `overlapHeader: true` |
| `plain` | `Boolean` | `false` | 控制是否启用 `plain` 行为。 | `plain: false` |
| `resizable` | `Boolean` | `true` | 控制是否启用 `resizable` 行为。 | `resizable: true` |
| `title` | `String` | `'&#160;'` | 面板或窗口显示的标题。 | `title: '&#160;'` |

## 方法

| 方法 | 参数 | 说明 | 调用示例 |
| --- | --- | --- | --- |
| `initComponent` | `` | 初始化组件及其子项。 执行时会保留父类默认行为、派发 `ok`、`cancel` 事件、更新 `dialog`、`autoReset` 状态。源码涉及 `fireEvent()`、`close()`、`callParent()`、`addEvents()`。 | `component.initComponent()` |
| `getElConfig` | `` | 读取并返回 `elConfig`。 执行时会保留父类默认行为。源码涉及 `callParent()`。 | `component.getElConfig()` |
| `focusTabIndex` | `selector, prev` | 将焦点移动到 `tabIndex`。源码涉及 `query()`。 | `component.focusTabIndex(...)` |
| `onEnterRoot` | `k, e` | 处理 `enterRoot` 回调。源码涉及 `focusTabIndex()`、`onEnter()`。 | `component.onEnterRoot(...)` |
| `getState` | `` | 读取并返回 `state`。 执行时会保留父类默认行为。源码涉及 `callParent()`、`getPosition()`、`getSize()`。 | `component.getState()` |
| `applyState` | `state` | 应用 `state`。 执行时会更新 `maximized`、`hasSavedRestore` 状态。 | `component.applyState(...)` |
| `onRender` | `ct, position` | 生成 `on` 的渲染结果。 执行时会保留父类默认行为、更新 `focusEl` 状态。源码涉及 `callParent()`。 | `component.onRender(...)` |
| `afterRender` | `` | 生成 `after` 的渲染结果。 执行时会保留父类默认行为、更新 `maximized`、`maxHeight` 状态。源码涉及 `callParent()`、`maximize()`、`getKeyMap()`、`mon()`。 | `component.afterRender()` |
| `initDraggable` | `` | 初始化 `draggable`。源码涉及 `initSimpleDraggable()`。 | `component.initDraggable()` |
| `initResizable` | `` | 初始化 `resizable`。 执行时会保留父类默认行为。源码涉及 `callParent()`。 | `component.initResizable()` |
| `onEsc` | `k, e` | 处理 `esc` 回调。源码涉及 `close()`。 | `component.onEsc(...)` |
| `beforeDestroy` | `` | 在 `destroy` 前执行预处理。 执行时会保留父类默认行为。源码涉及 `hide()`、`callParent()`。 | `component.beforeDestroy()` |
| `addTools` | `` | 添加 `tools`。 执行时会保留父类默认行为。源码涉及 `callParent()`。 | `component.addTools()` |
| `getFocusEl` | `` | 读取并返回 `focusEl`。源码涉及 `getDefaultFocus()`。 | `component.getFocusEl()` |
| `getDefaultFocus` | `` | 读取并返回 `defaultFocus`。源码涉及 `query()`、`queryById()`、`down()`。 | `component.getDefaultFocus()` |
| `onFocus` | `` | 处理 `focus` 回调。 执行时会保留父类默认行为。源码涉及 `getDefaultFocus()`、`callParent()`。 | `component.onFocus()` |
| `onShow` | `` | 处理 `show` 回调。 执行时会保留父类默认行为、同步关联状态。源码涉及 `callParent()`、`expand()`、`syncMonitorWindowResize()`。 | `component.onShow()` |
| `doClose` | `` | 执行 `close` 操作。 执行时会派发 `close` 事件。源码涉及 `fireEvent()`、`destroy()`、`hide()`。 | `component.doClose()` |
| `afterHide` | `` | 在 `hide` 后执行后处理。 执行时会保留父类默认行为、同步关联状态。源码涉及 `syncMonitorWindowResize()`、`callParent()`。 | `component.afterHide()` |
| `onWindowResize` | `` | 处理 `windowResize` 回调。 执行时会刷新界面或布局。源码涉及 `fitContainer()`、`getSizeModel()`、`updateLayout()`、`doConstrain()`。 | `component.onWindowResize()` |
| `minimize` | `` | 处理 `minimize` 操作。 执行时会派发 `minimize` 事件。源码涉及 `fireEvent()`。 | `component.minimize()` |
| `resumeHeaderLayout` | `changed` | 处理 `resumeHeaderLayout` 操作。 | `component.resumeHeaderLayout(...)` |
| `afterCollapse` | `` | 在 `collapse` 后执行后处理。 执行时会保留父类默认行为。源码涉及 `resumeHeaderLayout()`、`callParent()`。 | `component.afterCollapse()` |
| `afterExpand` | `` | 在 `expand` 后执行后处理。 执行时会保留父类默认行为。源码涉及 `resumeHeaderLayout()`、`callParent()`。 | `component.afterExpand()` |
| `maximize` | `animate` | 处理 `maximize` 操作。 执行时会派发 `maximize`、`maximize` 事件、同步关联状态、更新 `restoreSize`、`restorePos` 状态。源码涉及 `expand()`、`getPosition()`、`resumeHeaderLayout()`、`syncMonitorWindowResize()`。 | `component.maximize(...)` |
| `restore` | `animate` | 还原当前组件。 执行时会派发 `restore`、`restore` 事件、同步关联状态、更新 `hasSavedRestore`、`maximized` 状态。源码涉及 `removeCls()`、`resumeHeaderLayout()`、`setBox()`、`fireEvent()`。 | `component.restore(...)` |
| `syncMonitorWindowResize` | `` | 同步 `monitorWindowResize`。 执行时会更新 `_monitoringResize` 状态。 | `component.syncMonitorWindowResize()` |
| `toggleMaximize` | `` | 切换 `maximize`。 | `component.toggleMaximize()` |
| `createGhost` | `` | 调用并直接返回父类的值，不对结果作额外转换。 | `component.createGhost()` |

## 事件

| 事件 | 说明 | 监听示例 |
| --- | --- | --- |
| `maximize` | 窗口最大化后触发。 源码在 `maximize()` 中通过 `fireEvent()` 触发。 | `listeners: { maximize: function () {} }` |
| `minimize` | 窗口最小化后触发。 源码在 `minimize()` 中通过 `fireEvent()` 触发。 | `listeners: { minimize: function () {} }` |
| `resize` | 组件尺寸变化后触发。 源码只在事件声明处列出该事件；实际触发由继承的基类或关联对象负责。 | `listeners: { resize: function () {} }` |
| `restore` | 窗口从最大化或最小化状态还原后触发。 源码在 `restore()` 中通过 `fireEvent()` 触发。 | `listeners: { restore: function () {} }` |

Source: https://ag.879818327.xyz/ext/layout/window-window/index.mdx
