# Textbox 对话框组件 API 文档 本文档由 `DeepSeek R1` 模型生成并微调。 本文档描述在 `TextContent` 基础上扩展的对话框组件,专为剧情对话、系统提示等场景设计,支持背景、标题等装饰元素。 --- ## 特有属性说明 ```mermaid graph LR TextboxProps --> TextContentProps click TextContentProps "./组件%20TextContent" ``` | 属性名 | 类型 | 默认值 | 描述 | | -------------- | ------------- | -------------- | ------------------------------------- | | `backColor` | `CanvasStyle` | `#222` | 背景颜色(与 `winskin` 互斥) | | `winskin` | `ImageIds` | - | 背景图片资源 ID(优先于 `backColor`) | | `padding` | `number` | `8` | 内容区域与边框的内边距(像素) | | `title` | `string` | - | 标题文本内容 | | `titleFont` | `Font` | `18px Verdana` | 标题字体配置 | | `titleFill` | `CanvasStyle` | `gold` | 标题文字颜色 | | `titleStroke` | `CanvasStyle` | `transparent` | 标题描边颜色 | | `titlePadding` | `number` | `8` | 标题在其背景的间距(像素) | --- ## 事件说明 ```mermaid graph LR TextboxEmits --> TextContentEmits click TextContentEmits "./组件%20TextContent" ``` 完全继承 `TextContent` 的事件。 --- ## Exposed Methods 暴露方法 | 方法名 | 参数 | 返回值 | 描述 | | --------- | ---- | ------ | ---------------------------- | | `retype` | - | `void` | 从头开始重新打字 | | `showAll` | - | `void` | 立刻结束打字机,显示所有文字 | | `show` | - | `void` | 显示这个文本框 | | `hide` | - | `void` | 隐藏这个文本框 | --- ## Slots 插槽说明 ### default 背景插槽,传入后可以自定义背景 ```tsx // 例如使用一张图片作为背景 ``` ### title 标题背景插槽,自定义标题背景 ```tsx // 与 default 一起使用 {{ // 背景图 default: () => , // 标题背景图 title: () => }} ``` ## 使用示例 ### 基础对话框 ```tsx import { defineComponent } from 'vue'; import { Textbox } from '@user/client-modules'; export const MyCom = defineComponent(() => { return () => ( ); }); ``` ### 纯色背景 + 复杂标题 ```tsx import { defineComponent } from 'vue'; import { Textbox } from '@user/client-modules'; export const MyCom = defineComponent(() => { return () => ( ); }); ``` ### 动态标题交互 ```tsx import { defineComponent } from 'vue'; import { Textbox, TextbosExpose } from '@user/client-modules'; export const MyCom = defineComponent(() => { const currentTitle = ref(); // 点击按钮切换标题 const toggleTitle = () => { currentTitle.value += 1; }; return () => ( ); }); ``` --- ## 布局结构示意图 ```mermaid graph TB Dialog[对话框] --> Background[背景层] Dialog --> Title[标题层] Dialog --> Content[内容层] Background -->|winskin/backColor| 渲染背景 Title -->|title 配置| 标题文本 Content -->|padding 控制| 文字内容 ```