[{"data":1,"prerenderedAt":3305},["ShallowReactive",2],{"content-\u002Fcomponents\u002Fapp-window":3,"content-en-fallback-\u002Fcomponents\u002Fapp-window":3304},{"id":4,"title":5,"body":6,"description":3295,"extension":3296,"meta":3297,"nav":3298,"navigation":3299,"path":3300,"seo":3301,"stem":3302,"__hash__":3303},"content\u002Fcomponents\u002Fapp-window.md","App Window 应用窗口",{"type":7,"value":8,"toc":3279},"minimark",[9,13,26,43,129,133,228,252,256,383,399,575,582,586,612,685,689,723,792,939,944,957,1013,1020,1192,1210,1306,1340,1343,1436,1457,1461,1471,1534,1607,1760,1783,1786,1915,2007,2057,2061,2066,2401,2505,2601,2606,2743,2808,2835,2839,2846,3076,3079,3276],[10,11,5],"h1",{"id":12},"app-window-应用窗口",[14,15,16,20,21,25],"p",{},[17,18,19],"code",{},"FluereAppWindow"," 提供",[22,23,24],"strong",{},"窗口外框的样式与结构","：圆角 \u002F 描边 \u002F 阴影、标题栏（图标、标题、副标题、左头、中段、右头、返回与导航按钮）、右上角 caption 按钮、以及只负责「可视区域」的内容区。",[14,27,28,29,34,35,38,39,42],{},"它对位的是 WinUI 3 \u002F Windows App SDK 的 ",[22,30,31],{},[17,32,33],{},"Microsoft.UI.Xaml.Controls.TitleBar","（",[17,36,37],{},"microsoft-ui-xaml","）—— 这是一个",[22,40,41],{},"组合控件","，所以本组件的模板结构、状态与数值逐条对齐它：",[44,45,46,57,88,108],"ul",{},[47,48,49,52,53,56],"li",{},[22,50,51],{},"模板 12 列","：",[17,54,55],{},"2 | Auto(返回) | Auto(导航) | Auto(左头) | 14(左头间距) | Auto(图标) | Auto(标题) | Auto(副标题) | *(中段) | Auto(右头) | 48(最小拖拽区) | Auto(caption 区)","。",[47,58,59,52,62,65,66,65,69,72,73,34,76,79,80,83,84,87],{},[22,60,61],{},"高度两档",[17,63,64],{},"Content"," \u002F ",[17,67,68],{},"LeftHeader",[17,70,71],{},"RightHeader"," 三者",[22,74,75],{},"全空才 32",[17,77,78],{},"TitleBarCompactHeight","），任一非空则 48（",[17,81,82],{},"TitleBarExpandedHeight","，",[17,85,86],{},"TitleBar.cpp#UpdateHeight","）。",[47,89,90,93,94,97,98,65,101,104,105,56],{},[22,91,92],{},"状态切换零时长","：源码里 ",[17,95,96],{},"GoToState(..., false)","，没有任何 ",[17,99,100],{},"Storyboard",[17,102,103],{},"VisualTransition","，所以标题栏内部切换",[22,106,107],{},"不加过渡",[47,109,110,113,114,117,118,121,122,124,125,128],{},[22,111,112],{},"拖拽 = 非客户区 + 打洞","：整条标题栏属非客户区，可交互元素被设成 ",[17,115,116],{},"NonClientRegionKind::Passthrough"," 抠洞；",[17,119,120],{},"Icon"," 走独立的 ",[17,123,120],{}," region，",[22,126,127],{},"不在"," passthrough 清单里 ⇒ 图标区仍可拖拽。",[130,131,132],"h2",{"id":132},"版本与证据口径",[134,135,136,149],"table",{},[137,138,139],"thead",{},[140,141,142,146],"tr",{},[143,144,145],"th",{},"项",[143,147,148],{},"值",[150,151,152,175,218],"tbody",{},[140,153,154,158],{},[155,156,157],"td",{},"行为基准 tag",[155,159,160,163,164,167,168,171,172],{},[17,161,162],{},"winui3\u002Frelease\u002F2.0.1","（commit ",[17,165,166],{},"978ab63","）—— 最新 WinUI3 Gallery 发行版 v2.9.3 的 ",[17,169,170],{},"standalone.props"," 里 ",[17,173,174],{},"WindowsAppSdkPackageVersion=2.0.1",[140,176,177,180],{},[155,178,179],{},"模板 \u002F 画刷来源",[155,181,182,163,185,188,189,34,192,195,196,65,199,202,203,206,207,210,211,214,215],{},[17,183,184],{},"winui3\u002Frelease\u002F2.5.1",[17,186,187],{},"ba3a8d5","）—— 该控件目录两 tag ",[22,190,191],{},"有漂移",[17,193,194],{},"TitleBar.cpp"," +382 行、idl 新增 ",[17,197,198],{},"AutoRefreshDragRegions",[17,200,201],{},"IsDragRegion"," 等 ",[17,204,205],{},"MUX_PUBLIC_V11","），但 ",[17,208,209],{},"TitleBar.xaml"," 与 ",[17,212,213],{},"TitleBar_themeresources.xaml"," ",[22,216,217],{},"逐字节一致",[140,219,220,223],{},[155,221,222],{},"关键文件",[155,224,225],{},[17,226,227],{},"src\u002Fcontrols\u002Fdev\u002FTitleBar\u002F{TitleBar.xaml,TitleBar_themeresources.xaml,TitleBar.idl,TitleBar.h,TitleBar.cpp,TitleBarAutomationPeer.cpp}",[229,230,231],"blockquote",{},[14,232,233,239,240,243,244,247,248,251],{},[22,234,235,238],{},[17,236,237],{},"perf2026"," 不采纳","：2.5.1 新增的 ",[17,241,242],{},"TitleBar_themeresources_perf2026.xaml"," 有两处真 bug（",[17,245,246],{},"TitleBarPaneToggleButtonForegroundDisabled"," 改名后引用没跟着改；PaneToggle 的 ",[17,249,250],{},"Disabled"," 态把背景设到了 16×16 图标上而非按钮底），本组件以 base 版为准。",[130,253,255],{"id":254},"标题栏六个插槽与三个按钮","标题栏：六个插槽与三个按钮",[134,257,258,271],{},[137,259,260],{},[140,261,262,265,268],{},[143,263,264],{},"插槽",[143,266,267],{},"对应 WinUI",[143,269,270],{},"说明",[150,272,273,296,310,331,345,362],{},[140,274,275,280,285],{},[155,276,277],{},[17,278,279],{},"#icon",[155,281,282],{},[17,283,284],{},"IconSource",[155,286,287,288,291,292,295],{},"落在 16×16 的 ",[17,289,290],{},"Viewbox"," 语义盒里（",[17,293,294],{},"TitleBarIconMaxWidth\u002FHeight","）",[140,297,298,303,307],{},[155,299,300],{},[17,301,302],{},"#left-header",[155,304,305],{},[17,306,68],{},[155,308,309],{},"参与 32 → 48 的高度判定；属非拖拽区",[140,311,312,317,321],{},[155,313,314],{},[17,315,316],{},"#titlebar-content",[155,318,319],{},[17,320,64],{},[155,322,323,326,327,330],{},[22,324,325],{},"标题栏中段","（星号列、默认居中）；",[17,328,329],{},"Compact"," 时改左对齐 + 右移 16",[140,332,333,338,342],{},[155,334,335],{},[17,336,337],{},"#right-header",[155,339,340],{},[17,341,71],{},[155,343,344],{},"右对齐；属非拖拽区",[140,346,347,352,355],{},[155,348,349],{},[17,350,351],{},"#titlebar",[155,353,354],{},"无（本库逃生舱）",[155,356,357,358,361],{},"整条标题栏替换；caption 按钮仍由本组件渲染（",[17,359,360],{},"showCaptionButtons"," 可关）",[140,363,364,373,376],{},[155,365,366,369,370,295],{},[17,367,368],{},"#content","（别名 ",[17,371,372],{},"#default",[155,374,375],{},"无（窗口内容）",[155,377,378,379,382],{},"应用内容区：只控制可视区域（",[17,380,381],{},"overflow: clip","），滚动交给消费方",[14,384,385,387,388,391,392,395,396,87],{},[17,386,279],{}," 之外的四件套都会把标题栏撑到 48 高；",[22,389,390],{},"恰好只有一个","返回 \u002F 导航按钮可见时，左头间距从 14 压到 2（",[17,393,394],{},"LeftHeaderSpacingGroup"," 的 ",[17,397,398],{},"NegativeInsetSpacing",[400,401,403,410],"demo-block",{"title":402},"头部四件套 + 返回 \u002F 导航按钮",[404,405,407],"template",{"v-slot:preview":406},"",[408,409],"app-window-header-demo",{},[404,411,412],{"v-slot:code":406},[413,414,418],"pre",{"className":415,"code":416,"language":417,"meta":406,"style":406},"language-vue shiki shiki-themes github-light github-dark","\u003CFluereAppWindow\n  title=\"标题栏四件套\"\n  :is-back-button-visible=\"true\"\n  :is-pane-toggle-button-visible=\"true\"\n  @back-requested=\"…\"\n  @pane-toggle-requested=\"…\"\n>\n  \u003Ctemplate #titlebar-content>\n    \u003CFluereInput placeholder=\"查找设置\" aria-label=\"查找设置\" class=\"w-[220px]\" \u002F>\n  \u003C\u002Ftemplate>\n  \u003Ctemplate #right-header>\n    \u003CFluereButton appearance=\"subtle\" icon-only :icon=\"FluentIconPerson24Regular\" aria-label=\"账户\" \u002F>\n  \u003C\u002Ftemplate>\n  \u003Ctemplate #content>…\u003C\u002Ftemplate>\n\u003C\u002FFluereAppWindow>\n","vue",[17,419,420,433,447,468,484,502,518,524,530,536,542,548,554,559,565],{"__ignoreMap":406},[421,422,425,429],"span",{"class":423,"line":424},"line",1,[421,426,428],{"class":427},"sVt8B","\u003C",[421,430,432],{"class":431},"s9eBZ","FluereAppWindow\n",[421,434,436,440,443],{"class":423,"line":435},2,[421,437,439],{"class":438},"sScJk","  title",[421,441,442],{"class":427},"=",[421,444,446],{"class":445},"sZZnC","\"标题栏四件套\"\n",[421,448,450,453,456,458,461,465],{"class":423,"line":449},3,[421,451,452],{"class":427},"  :",[421,454,455],{"class":438},"is-back-button-visible",[421,457,442],{"class":427},[421,459,460],{"class":445},"\"",[421,462,464],{"class":463},"sj4cs","true",[421,466,467],{"class":445},"\"\n",[421,469,471,473,476,478,480,482],{"class":423,"line":470},4,[421,472,452],{"class":427},[421,474,475],{"class":438},"is-pane-toggle-button-visible",[421,477,442],{"class":427},[421,479,460],{"class":445},[421,481,464],{"class":463},[421,483,467],{"class":445},[421,485,487,490,493,495,497,500],{"class":423,"line":486},5,[421,488,489],{"class":427},"  @",[421,491,492],{"class":438},"back-requested",[421,494,442],{"class":427},[421,496,460],{"class":445},[421,498,499],{"class":427},"…",[421,501,467],{"class":445},[421,503,505,507,510,512,514,516],{"class":423,"line":504},6,[421,506,489],{"class":427},[421,508,509],{"class":438},"pane-toggle-requested",[421,511,442],{"class":427},[421,513,460],{"class":445},[421,515,499],{"class":427},[421,517,467],{"class":445},[421,519,521],{"class":423,"line":520},7,[421,522,523],{"class":427},">\n",[421,525,527],{"class":423,"line":526},8,[421,528,529],{"class":427},"  \u003Ctemplate #titlebar-content>\n",[421,531,533],{"class":423,"line":532},9,[421,534,535],{"class":427},"    \u003CFluereInput placeholder=\"查找设置\" aria-label=\"查找设置\" class=\"w-[220px]\" \u002F>\n",[421,537,539],{"class":423,"line":538},10,[421,540,541],{"class":427},"  \u003C\u002Ftemplate>\n",[421,543,545],{"class":423,"line":544},11,[421,546,547],{"class":427},"  \u003Ctemplate #right-header>\n",[421,549,551],{"class":423,"line":550},12,[421,552,553],{"class":427},"    \u003CFluereButton appearance=\"subtle\" icon-only :icon=\"FluentIconPerson24Regular\" aria-label=\"账户\" \u002F>\n",[421,555,557],{"class":423,"line":556},13,[421,558,541],{"class":427},[421,560,562],{"class":423,"line":561},14,[421,563,564],{"class":427},"  \u003Ctemplate #content>…\u003C\u002Ftemplate>\n",[421,566,568,571,573],{"class":423,"line":567},15,[421,569,570],{"class":427},"\u003C\u002F",[421,572,19],{"class":431},[421,574,523],{"class":427},[14,576,577,578,581],{},"标题栏里的输入框 \u002F 按钮都是",[22,579,580],{},"非拖拽区","，不会误触发窗口拖动（等价于 WinUI 把那块区域抠成 passthrough）。",[130,583,585],{"id":584},"内容区只控制可视区域","内容区：只控制可视区域",[14,587,588,589,591,592,52,595,598,599,602,603,65,606,65,609,56],{},"内容区的高度是「窗口高 − 标题栏高」，并且 ",[17,590,381],{}," + ",[17,593,594],{},"min-block-size: 0",[22,596,597],{},"它只决定内容的可视边界","，滚动由消费方决定（放 ",[17,600,601],{},"FluereScrollView","，或自己的滚动容器）。窗口尺寸同样由消费方给 —— 组件不写 ",[17,604,605],{},"position",[17,607,608],{},"inset",[17,610,611],{},"transform",[400,613,615,620],{"title":614},"基础形态：图标 + 标题 + 副标题 + 内容",[404,616,617],{"v-slot:preview":406},[618,619],"app-window-basic-demo",{},[404,621,622],{"v-slot:code":406},[413,623,625],{"className":415,"code":624,"language":417,"meta":406,"style":406},"\u003CFluereAppWindow class=\"h-[300px] w-full max-w-[560px]\" title=\"设置\" subtitle=\"21RU0000CD\">\n  \u003Ctemplate #icon>\n    \u003CFluentIconCloudArrowUp24Regular :size=\"16\" \u002F>\n  \u003C\u002Ftemplate>\n  \u003Ctemplate #content>…\u003C\u002Ftemplate>\n\u003C\u002FFluereAppWindow>\n",[17,626,627,659,664,669,673,677],{"__ignoreMap":406},[421,628,629,631,633,636,638,641,644,646,649,652,654,657],{"class":423,"line":424},[421,630,428],{"class":427},[421,632,19],{"class":431},[421,634,635],{"class":438}," class",[421,637,442],{"class":427},[421,639,640],{"class":445},"\"h-[300px] w-full max-w-[560px]\"",[421,642,643],{"class":438}," title",[421,645,442],{"class":427},[421,647,648],{"class":445},"\"设置\"",[421,650,651],{"class":438}," subtitle",[421,653,442],{"class":427},[421,655,656],{"class":445},"\"21RU0000CD\"",[421,658,523],{"class":427},[421,660,661],{"class":423,"line":435},[421,662,663],{"class":427},"  \u003Ctemplate #icon>\n",[421,665,666],{"class":423,"line":449},[421,667,668],{"class":427},"    \u003CFluentIconCloudArrowUp24Regular :size=\"16\" \u002F>\n",[421,670,671],{"class":423,"line":470},[421,672,541],{"class":427},[421,674,675],{"class":423,"line":486},[421,676,564],{"class":427},[421,678,679,681,683],{"class":423,"line":504},[421,680,570],{"class":427},[421,682,19],{"class":431},[421,684,523],{"class":427},[130,686,688],{"id":687},"caption-按钮只做逻辑代理","Caption 按钮：只做逻辑代理",[14,690,691,694,695,698,699,52,702,65,705,65,708,65,711,714,715,718,719,722],{},[17,692,693],{},"FluereCaptionButtons"," 渲染最小化 \u002F 最大化（还原）\u002F 关闭三个原生 ",[17,696,697],{},"\u003Cbutton>","，点击",[22,700,701],{},"只抛事件",[17,703,704],{},"minimize",[17,706,707],{},"maximize",[17,709,710],{},"restore",[17,712,713],{},"close","，并用 ",[17,716,717],{},"v-model:maximized"," 把「最大化 ⇄ 还原」的意图交回消费方 —— 组件本身",[22,720,721],{},"不改变任何窗口状态","，这正是 0.5.2「逻辑代理」的口径。",[134,724,725,738],{},[137,726,727],{},[140,728,729,732,735],{},[143,730,731],{},"能力开关",[143,733,734],{},"表现",[143,736,737],{},"依据",[150,739,740,761,776],{},[140,741,742,747,754],{},[155,743,744],{},[17,745,746],{},"isMinimizable",[155,748,749,750,753],{},"false ⇒ ",[22,751,752],{},"隐藏","按钮",[155,755,756,757,760],{},"系统表现无 A 级源码，属",[22,758,759],{},"假设","（见下）",[140,762,763,768,773],{},[155,764,765],{},[17,766,767],{},"isMaximizable",[155,769,749,770,772],{},[22,771,752],{},"按钮，字形不再切换",[155,774,775],{},"同上",[140,777,778,783,790],{},[155,779,780],{},[17,781,782],{},"isClosable",[155,784,785,786,789],{},"false ⇒ 保留按钮但",[22,787,788],{},"禁用","（原生 disabled）",[155,791,775],{},[400,793,795,800],{"title":794},"caption 按钮 + 能力开关 + 事件日志",[404,796,797],{"v-slot:preview":406},[798,799],"app-window-caption-demo",{},[404,801,802],{"v-slot:code":406},[413,803,805],{"className":415,"code":804,"language":417,"meta":406,"style":406},"\u003CFluereCaptionButtons\n  v-model:maximized=\"maximized\"\n  :is-minimizable=\"isMinimizable\"\n  :is-maximizable=\"isMaximizable\"\n  :is-closable=\"isClosable\"\n  @minimize=\"…\"\n  @maximize=\"…\"\n  @restore=\"…\"\n  @close=\"…\"\n\u002F>\n",[17,806,807,814,833,848,863,878,892,906,920,934],{"__ignoreMap":406},[421,808,809,811],{"class":423,"line":424},[421,810,428],{"class":427},[421,812,813],{"class":431},"FluereCaptionButtons\n",[421,815,816,819,822,825,827,829,831],{"class":423,"line":435},[421,817,818],{"class":438},"  v-model",[421,820,821],{"class":427},":",[421,823,824],{"class":438},"maximized",[421,826,442],{"class":427},[421,828,460],{"class":445},[421,830,824],{"class":427},[421,832,467],{"class":445},[421,834,835,837,840,842,844,846],{"class":423,"line":449},[421,836,452],{"class":427},[421,838,839],{"class":438},"is-minimizable",[421,841,442],{"class":427},[421,843,460],{"class":445},[421,845,746],{"class":427},[421,847,467],{"class":445},[421,849,850,852,855,857,859,861],{"class":423,"line":470},[421,851,452],{"class":427},[421,853,854],{"class":438},"is-maximizable",[421,856,442],{"class":427},[421,858,460],{"class":445},[421,860,767],{"class":427},[421,862,467],{"class":445},[421,864,865,867,870,872,874,876],{"class":423,"line":486},[421,866,452],{"class":427},[421,868,869],{"class":438},"is-closable",[421,871,442],{"class":427},[421,873,460],{"class":445},[421,875,782],{"class":427},[421,877,467],{"class":445},[421,879,880,882,884,886,888,890],{"class":423,"line":504},[421,881,489],{"class":427},[421,883,704],{"class":438},[421,885,442],{"class":427},[421,887,460],{"class":445},[421,889,499],{"class":427},[421,891,467],{"class":445},[421,893,894,896,898,900,902,904],{"class":423,"line":520},[421,895,489],{"class":427},[421,897,707],{"class":438},[421,899,442],{"class":427},[421,901,460],{"class":445},[421,903,499],{"class":427},[421,905,467],{"class":445},[421,907,908,910,912,914,916,918],{"class":423,"line":526},[421,909,489],{"class":427},[421,911,710],{"class":438},[421,913,442],{"class":427},[421,915,460],{"class":445},[421,917,499],{"class":427},[421,919,467],{"class":445},[421,921,922,924,926,928,930,932],{"class":423,"line":532},[421,923,489],{"class":427},[421,925,713],{"class":438},[421,927,442],{"class":427},[421,929,460],{"class":445},[421,931,499],{"class":427},[421,933,467],{"class":445},[421,935,936],{"class":423,"line":538},[421,937,938],{"class":427},"\u002F>\n",[940,941,943],"h3",{"id":942},"caption-按钮的证据缺口必须知道","caption 按钮的证据缺口（必须知道）",[14,945,946,947,214,950,953,954,956],{},"WinUI 3 的 ",[17,948,949],{},"TitleBar",[22,951,952],{},"模板里没有 caption 按钮","（12 列读完，无最小化 \u002F 最大化 \u002F 关闭）。它们由系统 DWM 绘制，",[17,955,37],{}," 里没有对应的 XAML 实现：",[44,958,959,977,984],{},[47,960,961,964,965,968,969,972,973,976],{},[17,962,963],{},"CWindowChrome.cpp"," 只把按钮底色设成全透明白、并维护 caption 区的 hit-test 矩形，",[22,966,967],{},"没有绘制代码","；",[17,970,971],{},"CWindowChrome.h"," 里的 ",[17,974,975],{},"enum class CaptionButtonState"," 全仓无使用点。",[47,978,979,980,983],{},"Microsoft 自己的 ",[17,981,982],{},"specs\u002FTitleBar\u002Ftitlebar-functional-spec.md:47-48"," 写明 \"WinUI TitleBar does not handle Caption Buttons … handled by the AppWindow TitleBar\"。",[47,985,986,987,395,990,993,994,997,998,1001,1002,1005,1006,1009,1010,56],{},"仓库里唯一存在的 caption 视觉是",[22,988,989],{},"旧系统 chrome",[17,991,992],{},"x:Key=\"WindowCaptionButton\""," 样式（",[17,995,996],{},"src\u002Fdxaml\u002Fxcp\u002Fdxaml\u002Fthemes\u002Fgeneric.xaml:15697-15786","，40×28 按钮、9×9 描边 ",[17,999,1000],{},"Path","、",[17,1003,1004],{},"WindowStateNormal\u002FMaximized"," 两段 ",[17,1007,1008],{},"Path.Data","）—— 本组件",[22,1011,1012],{},"只用它的字形几何",[14,1014,1015,1016,1019],{},"因此下面的量都是「",[22,1017,1018],{},"系统度量","」，用 Windows 11 参考截图 1:1 交叉验证，并全部落成可覆盖的组件局部变量：",[134,1021,1022,1035],{},[137,1023,1024],{},[140,1025,1026,1029,1032],{},[143,1027,1028],{},"量",[143,1030,1031],{},"取值",[143,1033,1034],{},"来源与验证",[150,1036,1037,1060,1074,1117,1130,1149,1178],{},[140,1038,1039,1042,1047],{},[155,1040,1041],{},"单键宽 × 高",[155,1043,1044],{},[22,1045,1046],{},"46 × 32",[155,1048,1049,1052,1053,1056,1057],{},[17,1050,1051],{},"TitleBarRightPaddingWidth"," 运行期被 ",[17,1054,1055],{},"AppWindowTitleBar.RightInset()"," 覆盖（A 级线索）；参考图实测三键字形中心间距 ",[22,1058,1059],{},"46.0 \u002F 46.0",[140,1061,1062,1065,1071],{},[155,1063,1064],{},"字形外框 \u002F 线宽",[155,1066,1067,1070],{},[22,1068,1069],{},"10 \u002F 1px","（关闭叉 1.1px）",[155,1072,1073],{},"参考图实测（最小化 10×1 横条、最大化 10×10 描边方框、关闭 10×10 叉）；关闭叉取 1.1 的像素依据见下「字形定值过程」",[140,1075,1076,1079,1090],{},[155,1077,1078],{},"字形墨色",[155,1080,1081,1089],{},[22,1082,1083,65,1086],{},[17,1084,1085],{},"#000000",[17,1087,1088],{},"#FFFFFF","（浅 \u002F 深主题）",[155,1091,1092,1093,1096,1097,1096,1100,34,1103,591,1106,1109,1110,1113,1114],{},"遗留样式 ",[17,1094,1095],{},"WindowCaptionForeground"," → ",[17,1098,1099],{},"SystemControlForegroundBaseHighBrush",[17,1101,1102],{},"SystemBaseHighColor",[17,1104,1105],{},"generic.xaml:263",[17,1107,1108],{},":4132","）；token 表无同值档（",[17,1111,1112],{},"colorNeutralForeground1"," 浅色是 #242424），落成 ",[17,1115,1116],{},"--fui-caption-buttons-glyph-color",[140,1118,1119,1122,1127],{},[155,1120,1121],{},"caption 区竖直位置",[155,1123,1124],{},[22,1125,1126],{},"顶端对齐",[155,1128,1129],{},"标题栏 48 高时，返回箭头墨迹中心 y≈23.5（= 48\u002F2）而 caption 字形中心 y≈15.5（= 32\u002F2）⇒ 按钮只占顶部 32",[140,1131,1132,1135,1143],{},[155,1133,1134],{},"hover \u002F pressed 底",[155,1136,1137,65,1140],{},[17,1138,1139],{},"colorSubtleBackgroundHover",[17,1141,1142],{},"…Pressed",[155,1144,1145,1146,295],{},"标题栏按钮同族的 A 级画刷（",[17,1147,1148],{},"SubtleFillColorSecondary\u002FTertiary",[140,1150,1151,1154,1161],{},[155,1152,1153],{},"关闭键 hover 红",[155,1155,1156],{},[22,1157,1158],{},[17,1159,1160],{},"#C42B1C",[155,1162,1163,1164,34,1167,1170,1171,214,1174,1177],{},"WinUI 系统色 ",[17,1165,1166],{},"SystemFillColorCritical",[17,1168,1169],{},"Common_themeresources_any.xaml:282","）与 Windows 11 关闭键红逐字节一致；旧 chrome 里的 ",[17,1172,1173],{},"#e81123",[22,1175,1176],{},"只有定义行、零引用行","，不能当依据",[140,1179,1180,1183,1189],{},[155,1181,1182],{},"关闭键 pressed 红",[155,1184,1185,1188],{},[17,1186,1187],{},"colorStatusDangerBackground3Hover","（#B10E1C）",[155,1190,1191],{},"无任何来源，取语义位最近的 token",[14,1193,1194,1195,1198,1199,591,1202,1205,1206,1209],{},"字形形状的定值过程（1:1 冻结帧 ↔ Windows 11 参考图逐像素",[22,1196,1197],{},"平均绝对差 Δ"," 候选扫描，越小越像；脚本 ",[17,1200,1201],{},"temp\u002Fglyph-lab.mjs",[17,1203,1204],{},"temp\u002Fglyph-lab-compare.py","，属过程产物不进仓库，结论已落到 ",[17,1207,1208],{},"packages\u002Fui\u002Fsrc\u002Fapp-window\u002Fconstants.ts"," 与组件注释）：",[134,1211,1212,1228],{},[137,1213,1214],{},[140,1215,1216,1219,1222,1225],{},[143,1217,1218],{},"字形",[143,1220,1221],{},"定值",[143,1223,1224],{},"Δ",[143,1226,1227],{},"淘汰的备选",[150,1229,1230,1255,1280],{},[140,1231,1232,1235,1244,1249],{},[155,1233,1234],{},"最小化",[155,1236,1237,34,1240,1243],{},[17,1238,1239],{},"M0 5.5H10",[17,1241,1242],{},"butt","；墨迹落在第 6 像素行，比几何中心低 0.5px）",[155,1245,1246],{},[22,1247,1248],{},"0.00",[155,1250,1251,1254],{},[17,1252,1253],{},"M0.5 5H9.5"," → 16.11",[140,1256,1257,1260,1268,1273],{},[155,1258,1259],{},"最大化",[155,1261,1262,1263,34,1266,295],{},"10×10 方框，中线内缩 0.5、圆角 ",[17,1264,1265],{},"r0.25",[17,1267,1242],{},[155,1269,1270],{},[22,1271,1272],{},"2.51",[155,1274,1275,1276,1279],{},"直角 → 3.38；遗留样式 ",[17,1277,1278],{},"r≈1.67px"," 大圆角 → 9.72",[140,1281,1282,1285,1298,1303],{},[155,1283,1284],{},"关闭",[155,1286,1287,1288,1291,1292,1001,1295],{},"端点 ",[17,1289,1290],{},"±0.55","（= 线宽÷2，圆头外缘贴满外框）、线宽 ",[22,1293,1294],{},"1.1",[17,1296,1297],{},"round",[155,1299,1300],{},[22,1301,1302],{},"3.19",[155,1304,1305],{},"线宽 1.0 → 15.74；线宽 1.2 → 11.08",[14,1307,1308,1309,1315,1316,1323,1324,591,1327,1329,1330,591,1333,1335,1336,1339],{},"两处系统性修正（原先「粗笨 \u002F 断线」的根因）：① ",[22,1310,1311,1312],{},"移除 ",[17,1313,1314],{},"shape-rendering: crispEdges"," —— 它关掉抗锯齿后，45° 笔画退化成硬边阶梯、方框圆角被量化成块（Δ 15.7 vs 3.2）；② ",[22,1317,1318,1319,1322],{},"线宽与端头改由 ",[17,1320,1321],{},"path"," 的呈现属性逐字形输出","（最小化 \u002F 最大化 ",[17,1325,1326],{},"1px",[17,1328,1242],{},"、关闭叉 ",[17,1331,1332],{},"1.1px",[17,1334,1297],{},"）—— CSS 规则的优先级高于呈现属性，若继续写在 ",[17,1337,1338],{},"\u003Cstyle scoped>"," 里会把逐字形值整个盖掉。",[14,1341,1342],{},"需要严格对齐实机时，覆盖这些局部变量即可：",[413,1344,1348],{"className":1345,"code":1346,"language":1347,"meta":406,"style":406},"language-css shiki shiki-themes github-light github-dark",".my-caption-buttons {\n  --fui-caption-buttons-button-width: 46px;\n  --fui-caption-buttons-glyph-size: 10px;\n  --fui-caption-buttons-glyph-color: #000000; \u002F* 深色主题下是 #ffffff *\u002F\n  --fui-caption-buttons-close-hover: #c42b1c;\n  --fui-caption-buttons-close-pressed: #b22b26;\n}\n","css",[17,1349,1350,1358,1377,1391,1407,1419,1431],{"__ignoreMap":406},[421,1351,1352,1355],{"class":423,"line":424},[421,1353,1354],{"class":438},".my-caption-buttons",[421,1356,1357],{"class":427}," {\n",[421,1359,1360,1364,1367,1370,1374],{"class":423,"line":435},[421,1361,1363],{"class":1362},"s4XuR","  --fui-caption-buttons-button-width",[421,1365,1366],{"class":427},": ",[421,1368,1369],{"class":463},"46",[421,1371,1373],{"class":1372},"szBVR","px",[421,1375,1376],{"class":427},";\n",[421,1378,1379,1382,1384,1387,1389],{"class":423,"line":449},[421,1380,1381],{"class":1362},"  --fui-caption-buttons-glyph-size",[421,1383,1366],{"class":427},[421,1385,1386],{"class":463},"10",[421,1388,1373],{"class":1372},[421,1390,1376],{"class":427},[421,1392,1393,1396,1398,1400,1403],{"class":423,"line":470},[421,1394,1395],{"class":1362},"  --fui-caption-buttons-glyph-color",[421,1397,1366],{"class":427},[421,1399,1085],{"class":463},[421,1401,1402],{"class":427},"; ",[421,1404,1406],{"class":1405},"sJ8bj","\u002F* 深色主题下是 #ffffff *\u002F\n",[421,1408,1409,1412,1414,1417],{"class":423,"line":486},[421,1410,1411],{"class":1362},"  --fui-caption-buttons-close-hover",[421,1413,1366],{"class":427},[421,1415,1416],{"class":463},"#c42b1c",[421,1418,1376],{"class":427},[421,1420,1421,1424,1426,1429],{"class":423,"line":504},[421,1422,1423],{"class":1362},"  --fui-caption-buttons-close-pressed",[421,1425,1366],{"class":427},[421,1427,1428],{"class":463},"#b22b26",[421,1430,1376],{"class":427},[421,1432,1433],{"class":423,"line":520},[421,1434,1435],{"class":427},"}\n",[229,1437,1438],{},[14,1439,1218,1440,1443,1444,65,1447,65,1450,65,1453,1456],{},[22,1441,1442],{},"线宽 \u002F 端头 \u002F 路径","不做成局部变量：它们与路径几何互相咬合（端点位置 = 线宽 ÷ 2），逐字形不同，覆盖其中一项就会破坏外框对齐 —— 要换字形请用 ",[17,1445,1446],{},"minimize-icon",[17,1448,1449],{},"maximize-icon",[17,1451,1452],{},"restore-icon",[17,1454,1455],{},"close-icon"," 四个插槽。",[130,1458,1460],{"id":1459},"拖拽只抛事件","拖拽：只抛事件",[14,1462,1463,1466,1467,1470],{},[17,1464,1465],{},"draggable","（缺省 true）时，在标题栏",[22,1468,1469],{},"非可交互区","按下会依次抛出：",[134,1472,1473,1483],{},[137,1474,1475],{},[140,1476,1477,1480],{},[143,1478,1479],{},"事件",[143,1481,1482],{},"载荷",[150,1484,1485,1497,1509,1521],{},[140,1486,1487,1492],{},[155,1488,1489],{},[17,1490,1491],{},"dragStart",[155,1493,1494],{},[17,1495,1496],{},"{ pointerId, clientX, clientY }",[140,1498,1499,1504],{},[155,1500,1501],{},[17,1502,1503],{},"dragMove",[155,1505,1506],{},[17,1507,1508],{},"{ pointerId, clientX, clientY, deltaX, deltaY, totalDeltaX, totalDeltaY }",[140,1510,1511,1516],{},[155,1512,1513],{},[17,1514,1515],{},"dragEnd",[155,1517,1518],{},[17,1519,1520],{},"{ pointerId, clientX, clientY, totalDeltaX, totalDeltaY, canceled }",[140,1522,1523,1528],{},[155,1524,1525],{},[17,1526,1527],{},"titlebarDoubleClick",[155,1529,1530,1533],{},[17,1531,1532],{},"{ clientX, clientY }","（系统行为是切换最大化；组件不改状态）",[44,1535,1536,1552,1564,1575,1582],{},[47,1537,1538,214,1541,1544,1545,214,1548,1551],{},[22,1539,1540],{},"逐次位移",[17,1542,1543],{},"deltaX\u002FdeltaY"," 方便增量更新，",[22,1546,1547],{},"累计位移",[17,1549,1550],{},"totalDeltaX\u002FtotalDeltaY"," 方便直接叠在起点上。",[47,1553,1554,65,1557,1560,1561,56],{},[17,1555,1556],{},"Esc",[17,1558,1559],{},"pointercancel"," \u002F 失去指针捕获 ⇒ ",[17,1562,1563],{},"dragEnd.canceled = true",[47,1565,1566,1567,1570,1571,1574],{},"起点落在左头 \u002F 中段 \u002F 右头 \u002F 返回 \u002F 导航 \u002F caption 按钮 \u002F 任何原生可交互元素，或落在带 ",[17,1568,1569],{},"data-fui-app-window-drag-exempt"," 的元素里 ⇒ ",[22,1572,1573],{},"不启动","拖拽。",[47,1576,1577,1578,1581],{},"拖拽期间标题栏",[22,1579,1580],{},"文本不可选中","（WinUI 里它属非客户区）。",[47,1583,1584,1587,1588,65,1590,1592,1593,1595,1596,1599,1600,1603,1604,56],{},[17,1585,1586],{},"roundToInteger","（缺省 false）时，",[17,1589,1503],{},[17,1591,1515],{}," 的",[22,1594,1547],{},"四舍五入成整数、",[17,1597,1598],{},"delta"," 取两次累计之差 —— 外层用 CSS ",[17,1601,1602],{},"translate"," 承载位移时可保证 translate 值恒为整数（无亚像素模糊），且",[22,1605,1606],{},"不累积取整误差",[400,1608,1610,1615],{"title":1609},"由外壳实现位移（组件只抛事件，用 translate 承载）",[404,1611,1612],{"v-slot:preview":406},[1613,1614],"app-window-drag-demo",{},[404,1616,1617],{"v-slot:code":406},[413,1618,1620],{"className":415,"code":1619,"language":417,"meta":406,"style":406},"\u003CFluereAppWindow\n  class=\"absolute h-[200px] w-[380px] transition-[translate,border-radius] duration-150\"\n  :style=\"{ translate: `${x}px ${y}px` }\"\n  :maximized=\"maximized\"\n  :round-to-integer=\"true\"\n  @drag-start=\"onDragStart\"\n  @drag-move=\"onDragMove\"\n  @titlebar-double-click=\"maximized = !maximized\"\n\u002F>\n",[17,1621,1622,1628,1638,1672,1686,1701,1717,1733,1756],{"__ignoreMap":406},[421,1623,1624,1626],{"class":423,"line":424},[421,1625,428],{"class":427},[421,1627,432],{"class":431},[421,1629,1630,1633,1635],{"class":423,"line":435},[421,1631,1632],{"class":438},"  class",[421,1634,442],{"class":427},[421,1636,1637],{"class":445},"\"absolute h-[200px] w-[380px] transition-[translate,border-radius] duration-150\"\n",[421,1639,1640,1642,1645,1647,1649,1652,1655,1658,1661,1664,1667,1670],{"class":423,"line":449},[421,1641,452],{"class":427},[421,1643,1644],{"class":438},"style",[421,1646,442],{"class":427},[421,1648,460],{"class":445},[421,1650,1651],{"class":427},"{ translate: ",[421,1653,1654],{"class":445},"`${",[421,1656,1657],{"class":427},"x",[421,1659,1660],{"class":445},"}px ${",[421,1662,1663],{"class":427},"y",[421,1665,1666],{"class":445},"}px`",[421,1668,1669],{"class":427}," }",[421,1671,467],{"class":445},[421,1673,1674,1676,1678,1680,1682,1684],{"class":423,"line":470},[421,1675,452],{"class":427},[421,1677,824],{"class":438},[421,1679,442],{"class":427},[421,1681,460],{"class":445},[421,1683,824],{"class":427},[421,1685,467],{"class":445},[421,1687,1688,1690,1693,1695,1697,1699],{"class":423,"line":486},[421,1689,452],{"class":427},[421,1691,1692],{"class":438},"round-to-integer",[421,1694,442],{"class":427},[421,1696,460],{"class":445},[421,1698,464],{"class":463},[421,1700,467],{"class":445},[421,1702,1703,1705,1708,1710,1712,1715],{"class":423,"line":504},[421,1704,489],{"class":427},[421,1706,1707],{"class":438},"drag-start",[421,1709,442],{"class":427},[421,1711,460],{"class":445},[421,1713,1714],{"class":427},"onDragStart",[421,1716,467],{"class":445},[421,1718,1719,1721,1724,1726,1728,1731],{"class":423,"line":520},[421,1720,489],{"class":427},[421,1722,1723],{"class":438},"drag-move",[421,1725,442],{"class":427},[421,1727,460],{"class":445},[421,1729,1730],{"class":427},"onDragMove",[421,1732,467],{"class":445},[421,1734,1735,1737,1740,1742,1744,1747,1749,1752,1754],{"class":423,"line":526},[421,1736,489],{"class":427},[421,1738,1739],{"class":438},"titlebar-double-click",[421,1741,442],{"class":427},[421,1743,460],{"class":445},[421,1745,1746],{"class":427},"maximized ",[421,1748,442],{"class":1372},[421,1750,1751],{"class":1372}," !",[421,1753,824],{"class":427},[421,1755,467],{"class":445},[421,1757,1758],{"class":423,"line":532},[421,1759,938],{"class":427},[229,1761,1762],{},[14,1763,1764,52,1776,1778,1779,1782],{},[22,1765,1766,1767,1769,1770,65,1773],{},"为什么用 ",[17,1768,1602],{}," 而不是 ",[17,1771,1772],{},"left",[17,1774,1775],{},"top",[17,1777,1602],{}," 走合成层、不触发重排 \u002F 重绘，拖拽更顺滑；配合 ",[17,1780,1781],{},":round-to-integer=\"true\"","，位移值恒为整数，不会因为亚像素值产生模糊或抖动。",[130,1784,1785],{"id":1785},"状态与集成样式",[134,1787,1788,1801],{},[137,1789,1790],{},[140,1791,1792,1795,1798],{},[143,1793,1794],{},"状态",[143,1796,1797],{},"表达",[143,1799,1800],{},"实现",[150,1802,1803,1825,1852,1870,1896],{},[140,1804,1805,1808,1811],{},[155,1806,1807],{},"rest \u002F hover \u002F pressed",[155,1809,1810],{},"返回、导航、caption 按钮",[155,1812,1813,65,1816,65,1819,1821,1822,295],{},[17,1814,1815],{},"colorSubtleBackground",[17,1817,1818],{},"…Hover",[17,1820,1142],{},"（对应 ",[17,1823,1824],{},"SubtleFillColor*",[140,1826,1827,1830,1838],{},[155,1828,1829],{},"disabled",[155,1831,1832,65,1835],{},[17,1833,1834],{},"isBackButtonEnabled=false",[17,1836,1837],{},"isClosable=false",[155,1839,1840,591,1843,34,1846,65,1849,295],{},[17,1841,1842],{},"colorNeutralBackgroundDisabled",[17,1844,1845],{},"colorNeutralForegroundDisabled",[17,1847,1848],{},"ControlFillColorDisabledBrush",[17,1850,1851],{},"TextFillColorDisabledBrush",[140,1853,1854,1857,1860],{},[155,1855,1856],{},"focus",[155,1858,1859],{},"键盘 Tab 到按钮",[155,1861,1862,1863,1866,1867],{},"WinUI 双层焦点矩形：外 2px ",[17,1864,1865],{},"colorStrokeFocus2"," + 内 1px ",[17,1868,1869],{},"colorStrokeFocus1",[140,1871,1872,1875,1880],{},[155,1873,1874],{},"失活（非前台）",[155,1876,1877],{},[17,1878,1879],{},"active=false",[155,1881,1882,1883,34,1886,1889,1890,34,1893,295],{},"标题 \u002F 副标题换 ",[17,1884,1885],{},"colorNeutralForeground3",[17,1887,1888],{},"TitleBarDeactivatedForegroundBrush","）；图标 \u002F 左头 \u002F 中段 \u002F 右头 ",[17,1891,1892],{},"Opacity=0.5",[17,1894,1895],{},"TitleBarDeactivatedOpacity",[140,1897,1898,1900,1905],{},[155,1899,1259],{},[155,1901,1902],{},[17,1903,1904],{},"maximized=true",[155,1906,1907,1908,1096,1911,1914],{},"圆角 ",[17,1909,1910],{},"borderRadiusXLarge",[17,1912,1913],{},"borderRadiusNone","、阴影移除、caption 字形切「还原」",[400,1916,1918,1923],{"title":1917},"失活 \u002F 最大化 \u002F 零时长动效 + 焦点",[404,1919,1920],{"v-slot:preview":406},[1921,1922],"app-window-states-demo",{},[404,1924,1925],{"v-slot:code":406},[413,1926,1928],{"className":415,"code":1927,"language":417,"meta":406,"style":406},"\u003CFluereAppWindow :active=\"active\" :maximized=\"maximized\" title=\"前台 \u002F 失活\" \u002F>\n\u003CFluereAppWindow motion=\"none\" title=\"零时长动效 + 焦点\" :is-back-button-visible=\"true\" \u002F>\n",[17,1929,1930,1972],{"__ignoreMap":406},[421,1931,1932,1934,1936,1939,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1969],{"class":423,"line":424},[421,1933,428],{"class":427},[421,1935,19],{"class":431},[421,1937,1938],{"class":427}," :",[421,1940,1941],{"class":438},"active",[421,1943,442],{"class":427},[421,1945,460],{"class":445},[421,1947,1941],{"class":427},[421,1949,460],{"class":445},[421,1951,1938],{"class":427},[421,1953,824],{"class":438},[421,1955,442],{"class":427},[421,1957,460],{"class":445},[421,1959,824],{"class":427},[421,1961,460],{"class":445},[421,1963,643],{"class":438},[421,1965,442],{"class":427},[421,1967,1968],{"class":445},"\"前台 \u002F 失活\"",[421,1970,1971],{"class":427}," \u002F>\n",[421,1973,1974,1976,1978,1981,1983,1986,1988,1990,1993,1995,1997,1999,2001,2003,2005],{"class":423,"line":435},[421,1975,428],{"class":427},[421,1977,19],{"class":431},[421,1979,1980],{"class":438}," motion",[421,1982,442],{"class":427},[421,1984,1985],{"class":445},"\"none\"",[421,1987,643],{"class":438},[421,1989,442],{"class":427},[421,1991,1992],{"class":445},"\"零时长动效 + 焦点\"",[421,1994,1938],{"class":427},[421,1996,455],{"class":438},[421,1998,442],{"class":427},[421,2000,460],{"class":445},[421,2002,464],{"class":463},[421,2004,460],{"class":445},[421,2006,1971],{"class":427},[229,2008,2009,2029],{},[14,2010,2011,2014,2015,2021,2022,2025,2026,87],{},[22,2012,2013],{},"层级由外部控制","：组件",[22,2016,2017,2018],{},"不写任何 ",[17,2019,2020],{},"z-index","。窗口层由外壳决定（文档站现有档位：ContentDialog \u002F Combobox 下拉 ",[17,2023,2024],{},"1000","、Tooltip ",[17,2027,2028],{},"1100",[14,2030,2031,2034,2035,2038,2039,2041,2042,2045,2046,591,2049,2052,2053,2056],{},[22,2032,2033],{},"最大 \u002F 最小化动画","：DWM 的窗口打开、最小化、最大化动画",[22,2036,2037],{},"没有任何关键帧可读","（不在 ",[17,2040,37],{}," 里），本库不做逐帧还原。组件只提供「可控过渡钩子」：",[17,2043,2044],{},"motion=\"auto\""," 时给窗口框体的圆角 \u002F 阴影 \u002F 底色挂 token 化过渡（",[17,2047,2048],{},"--durationNormal",[17,2050,2051],{},"--curveDecelerateMid","，尊重 ",[17,2054,2055],{},"prefers-reduced-motion","），几何动画由外壳用同一批 token 自行实现（见上面拖拽示例）。",[130,2058,2060],{"id":2059},"api","API",[940,2062,2064],{"id":2063},"fluereappwindow",[17,2065,19],{},[134,2067,2068,2084],{},[137,2069,2070],{},[140,2071,2072,2075,2078,2081],{},[143,2073,2074],{},"属性（Props）",[143,2076,2077],{},"类型",[143,2079,2080],{},"默认",[143,2082,2083],{},"对应 \u002F 说明",[150,2085,2086,2109,2130,2152,2173,2193,2210,2231,2253,2273,2290,2307,2335,2361,2380],{},[140,2087,2088,2093,2098,2103],{},[155,2089,2090],{},[17,2091,2092],{},"title",[155,2094,2095],{},[17,2096,2097],{},"string",[155,2099,2100],{},[17,2101,2102],{},"''",[155,2104,2105,2108],{},[17,2106,2107],{},"Title","：12px \u002F Normal，空串时整块折叠",[140,2110,2111,2116,2120,2124],{},[155,2112,2113],{},[17,2114,2115],{},"subtitle",[155,2117,2118],{},[17,2119,2097],{},[155,2121,2122],{},[17,2123,2102],{},[155,2125,2126,2129],{},[17,2127,2128],{},"Subtitle","：12px \u002F Normal，前景比标题弱一档",[140,2131,2132,2137,2142,2147],{},[155,2133,2134],{},[17,2135,2136],{},"isBackButtonVisible",[155,2138,2139],{},[17,2140,2141],{},"boolean",[155,2143,2144],{},[17,2145,2146],{},"false",[155,2148,2149],{},[17,2150,2151],{},"IsBackButtonVisible",[140,2153,2154,2159,2163,2167],{},[155,2155,2156],{},[17,2157,2158],{},"isBackButtonEnabled",[155,2160,2161],{},[17,2162,2141],{},[155,2164,2165],{},[17,2166,464],{},[155,2168,2169,2172],{},[17,2170,2171],{},"IsBackButtonEnabled","（真正禁用按钮，且不再算可交互区）",[140,2174,2175,2180,2184,2188],{},[155,2176,2177],{},[17,2178,2179],{},"isPaneToggleButtonVisible",[155,2181,2182],{},[17,2183,2141],{},[155,2185,2186],{},[17,2187,2146],{},[155,2189,2190],{},[17,2191,2192],{},"IsPaneToggleButtonVisible",[140,2194,2195,2199,2203,2207],{},[155,2196,2197],{},[17,2198,360],{},[155,2200,2201],{},[17,2202,2141],{},[155,2204,2205],{},[17,2206,464],{},[155,2208,2209],{},"本库扩展：WinUI 的 caption 按钮由系统绘制",[140,2211,2212,2220,2224,2228],{},[155,2213,2214,65,2216,65,2218],{},[17,2215,746],{},[17,2217,767],{},[17,2219,782],{},[155,2221,2222],{},[17,2223,2141],{},[155,2225,2226],{},[17,2227,464],{},[155,2229,2230],{},"透传 caption 按钮的能力开关",[140,2232,2233,2237,2241,2245],{},[155,2234,2235],{},[17,2236,824],{},[155,2238,2239],{},[17,2240,2141],{},[155,2242,2243],{},[17,2244,2146],{},[155,2246,2247,2249,2250],{},[17,2248,717],{},"；只影响圆角 \u002F 阴影 \u002F 字形，",[22,2251,2252],{},"不改几何",[140,2254,2255,2259,2263,2267],{},[155,2256,2257],{},[17,2258,1941],{},[155,2260,2261],{},[17,2262,2141],{},[155,2264,2265],{},[17,2266,464],{},[155,2268,2269,2270,295],{},"前台态，false 走失活表现（WinUI 来自 ",[17,2271,2272],{},"InputActivationListener",[140,2274,2275,2279,2283,2287],{},[155,2276,2277],{},[17,2278,1465],{},[155,2280,2281],{},[17,2282,2141],{},[155,2284,2285],{},[17,2286,464],{},[155,2288,2289],{},"标题栏是否可拖拽（只影响是否抛 drag 事件）",[140,2291,2292,2296,2300,2304],{},[155,2293,2294],{},[17,2295,1586],{},[155,2297,2298],{},[17,2299,2141],{},[155,2301,2302],{},[17,2303,2146],{},[155,2305,2306],{},"位移取整：累计位移按差值取整，translate 值恒为整数（见上文拖拽节）",[140,2308,2309,2314,2318,2323],{},[155,2310,2311],{},[17,2312,2313],{},"label",[155,2315,2316],{},[17,2317,2097],{},[155,2319,2320],{},[17,2321,2322],{},"—",[155,2324,2325,2328,2329,2331,2332,295],{},[17,2326,2327],{},"AutomationProperties.Name","，缺省回退 ",[17,2330,2092],{},"（对齐 peer 的 ",[17,2333,2334],{},"GetNameCore",[140,2336,2337,2342,2347,2352],{},[155,2338,2339],{},[17,2340,2341],{},"motion",[155,2343,2344],{},[17,2345,2346],{},"'auto' | 'none'",[155,2348,2349],{},[17,2350,2351],{},"'auto'",[155,2353,2354,2355,2358,2359,295],{},"组件自有过渡开关（",[17,2356,2357],{},"auto"," 尊重 ",[17,2360,2055],{},[140,2362,2363,2368,2373,2377],{},[155,2364,2365],{},[17,2366,2367],{},"labels",[155,2369,2370],{},[17,2371,2372],{},"Partial\u003CCaptionLabels>",[155,2374,2375],{},[17,2376,2322],{},[155,2378,2379],{},"覆盖 caption 按钮可访问名",[140,2381,2382,2387,2391,2395],{},[155,2383,2384],{},[17,2385,2386],{},"locale",[155,2388,2389],{},[17,2390,2097],{},[155,2392,2393],{},[17,2394,2322],{},[155,2396,2397,2398],{},"内建文案 locale（Back \u002F Toggle Navigation），优先于 ",[17,2399,2400],{},"FluereConfigProvider",[134,2402,2403,2414],{},[137,2404,2405],{},[140,2406,2407,2410,2412],{},[143,2408,2409],{},"事件（Emits）",[143,2411,1482],{},[143,2413,270],{},[150,2415,2416,2431,2445,2459,2476,2492],{},[140,2417,2418,2423,2425],{},[155,2419,2420],{},[17,2421,2422],{},"backRequested",[155,2424,2322],{},[155,2426,2427,2428],{},"对齐 WinUI ",[17,2429,2430],{},"BackRequested",[140,2432,2433,2438,2440],{},[155,2434,2435],{},[17,2436,2437],{},"paneToggleRequested",[155,2439,2322],{},[155,2441,2427,2442],{},[17,2443,2444],{},"PaneToggleRequested",[140,2446,2447,2452,2456],{},[155,2448,2449],{},[17,2450,2451],{},"update:maximized",[155,2453,2454],{},[17,2455,2141],{},[155,2457,2458],{},"caption 的最大化 \u002F 还原意图",[140,2460,2461,2471,2473],{},[155,2462,2463,65,2465,65,2467,65,2469],{},[17,2464,704],{},[17,2466,707],{},[17,2468,710],{},[17,2470,713],{},[155,2472,2322],{},[155,2474,2475],{},"caption 的语义事件（组件不改窗口状态）",[140,2477,2478,2486,2489],{},[155,2479,2480,65,2482,65,2484],{},[17,2481,1491],{},[17,2483,1503],{},[17,2485,1515],{},[155,2487,2488],{},"见上表",[155,2490,2491],{},"标题栏拖拽（只抛事件）",[140,2493,2494,2498,2502],{},[155,2495,2496],{},[17,2497,1527],{},[155,2499,2500],{},[17,2501,1532],{},[155,2503,2504],{},"标题栏双击（系统行为：切换最大化）",[134,2506,2507,2516],{},[137,2508,2509],{},[140,2510,2511,2514],{},[143,2512,2513],{},"插槽（Slots）",[143,2515,270],{},[150,2517,2518,2530,2542,2554,2565,2575,2588],{},[140,2519,2520,2525],{},[155,2521,2522],{},[17,2523,2524],{},"icon",[155,2526,2527,2529],{},[17,2528,284],{},"；16×16 盒子",[140,2531,2532,2537],{},[155,2533,2534],{},[17,2535,2536],{},"left-header",[155,2538,2539,2541],{},[17,2540,68],{},"；参与高度判定",[140,2543,2544,2549],{},[155,2545,2546],{},[17,2547,2548],{},"titlebar-content",[155,2550,2551,2553],{},[17,2552,64],{},"（标题栏中段）",[140,2555,2556,2561],{},[155,2557,2558],{},[17,2559,2560],{},"right-header",[155,2562,2563],{},[17,2564,71],{},[140,2566,2567,2572],{},[155,2568,2569],{},[17,2570,2571],{},"titlebar",[155,2573,2574],{},"整条标题栏替换（逃生舱）",[140,2576,2577,2585],{},[155,2578,2579,65,2582],{},[17,2580,2581],{},"content",[17,2583,2584],{},"default",[155,2586,2587],{},"内容区（只控制可视区域）",[140,2589,2590,2598],{},[155,2591,2592,65,2595],{},[17,2593,2594],{},"back-icon",[17,2596,2597],{},"pane-toggle-icon",[155,2599,2600],{},"替换返回 \u002F 导航按钮字形",[940,2602,2604],{"id":2603},"fluerecaptionbuttons",[17,2605,693],{},[134,2607,2608,2620],{},[137,2609,2610],{},[140,2611,2612,2614,2616,2618],{},[143,2613,2074],{},[143,2615,2077],{},[143,2617,2080],{},[143,2619,270],{},[150,2621,2622,2641,2658,2675,2692,2709,2726],{},[140,2623,2624,2628,2632,2636],{},[155,2625,2626],{},[17,2627,824],{},[155,2629,2630],{},[17,2631,2141],{},[155,2633,2634],{},[17,2635,2146],{},[155,2637,2638,2640],{},[17,2639,717],{},"；决定字形与可访问名",[140,2642,2643,2647,2651,2655],{},[155,2644,2645],{},[17,2646,746],{},[155,2648,2649],{},[17,2650,2141],{},[155,2652,2653],{},[17,2654,464],{},[155,2656,2657],{},"false ⇒ 隐藏最小化按钮",[140,2659,2660,2664,2668,2672],{},[155,2661,2662],{},[17,2663,767],{},[155,2665,2666],{},[17,2667,2141],{},[155,2669,2670],{},[17,2671,464],{},[155,2673,2674],{},"false ⇒ 隐藏最大化 \u002F 还原按钮",[140,2676,2677,2681,2685,2689],{},[155,2678,2679],{},[17,2680,782],{},[155,2682,2683],{},[17,2684,2141],{},[155,2686,2687],{},[17,2688,464],{},[155,2690,2691],{},"false ⇒ 关闭按钮保留但禁用",[140,2693,2694,2698,2702,2706],{},[155,2695,2696],{},[17,2697,1941],{},[155,2699,2700],{},[17,2701,2141],{},[155,2703,2704],{},[17,2705,464],{},[155,2707,2708],{},"false ⇒ 字形转弱（失活）",[140,2710,2711,2715,2719,2723],{},[155,2712,2713],{},[17,2714,2367],{},[155,2716,2717],{},[17,2718,2372],{},[155,2720,2721],{},[17,2722,2322],{},[155,2724,2725],{},"覆盖可访问名（优先于 locale）",[140,2727,2728,2732,2736,2740],{},[155,2729,2730],{},[17,2731,2386],{},[155,2733,2734],{},[17,2735,2097],{},[155,2737,2738],{},[17,2739,2322],{},[155,2741,2742],{},"内建文案 locale",[134,2744,2745,2755],{},[137,2746,2747],{},[140,2748,2749,2751,2753],{},[143,2750,2409],{},[143,2752,1482],{},[143,2754,270],{},[150,2756,2757,2770,2781,2797],{},[140,2758,2759,2763,2767],{},[155,2760,2761],{},[17,2762,2451],{},[155,2764,2765],{},[17,2766,2141],{},[155,2768,2769],{},"切换意图",[140,2771,2772,2776,2778],{},[155,2773,2774],{},[17,2775,704],{},[155,2777,2322],{},[155,2779,2780],{},"最小化意图",[140,2782,2783,2789,2791],{},[155,2784,2785,65,2787],{},[17,2786,707],{},[17,2788,710],{},[155,2790,2322],{},[155,2792,2793,2794,2796],{},"由当前 ",[17,2795,824],{}," 决定抛哪一个",[140,2798,2799,2803,2805],{},[155,2800,2801],{},[17,2802,713],{},[155,2804,2322],{},[155,2806,2807],{},"关闭意图",[134,2809,2810,2818],{},[137,2811,2812],{},[140,2813,2814,2816],{},[143,2815,2513],{},[143,2817,270],{},[150,2819,2820],{},[140,2821,2822,2832],{},[155,2823,2824,65,2826,65,2828,65,2830],{},[17,2825,1446],{},[17,2827,1449],{},[17,2829,1452],{},[17,2831,1455],{},[155,2833,2834],{},"替换内建字形",[130,2836,2838],{"id":2837},"浏览器实测可复现","浏览器实测（可复现）",[14,2840,2841,2842,2845],{},"Playwright + 系统 Chrome（1280×900 \u002F DPR 1）在文档站本页实测的计算样式（脚本与截图属过程产物，只留在 ",[17,2843,2844],{},"temp\u002F","；结论如下）：",[134,2847,2848,2857],{},[137,2849,2850],{},[140,2851,2852,2854],{},[143,2853,1028],{},[143,2855,2856],{},"实测",[150,2858,2859,2874,2888,2902,2921,2935,2964,2988,3002,3012,3022,3034,3054],{},[140,2860,2861,2864],{},[155,2862,2863],{},"标题栏高度",[155,2865,2866,2869,2870,2873],{},[17,2867,2868],{},"32","（无头部插槽）\u002F ",[17,2871,2872],{},"48","（有）",[140,2875,2876,2879],{},[155,2877,2878],{},"窗口圆角 \u002F 描边 \u002F 内容区",[155,2880,2881,65,2884,65,2886],{},[17,2882,2883],{},"8px",[17,2885,1326],{},[17,2887,381],{},[140,2889,2890,2893],{},[155,2891,2892],{},"标题 \u002F 副标题",[155,2894,2895,2898,2899],{},[17,2896,2897],{},"font-size: 12px"," \u002F 前景 ",[17,2900,2901],{},"rgb(66, 66, 66)",[140,2903,2904,2907],{},[155,2905,2906],{},"返回按钮",[155,2908,2909,2912,2913,2916,2917,2920],{},[17,2910,2911],{},"40 × 44","、圆角 ",[17,2914,2915],{},"4px","、左缘偏移 ",[17,2918,2919],{},"5","（1 描边 + 2 内边距 + 2 Margin）",[140,2922,2923,2926],{},[155,2924,2925],{},"caption 单键 \u002F 区宽 \u002F 键心间距",[155,2927,2928,65,2930,65,2933],{},[17,2929,1046],{},[17,2931,2932],{},"138",[17,2934,1369],{},[140,2936,2937,2940],{},[155,2938,2939],{},"caption 字形",[155,2941,2942,2945,2946,2949,2950,2953,2954,2956,2957,2960,2961,295],{},[17,2943,2944],{},"10 × 10","、居中、",[17,2947,2948],{},"stroke-width"," 属性 ",[17,2951,2952],{},"1","（关闭叉 ",[17,2955,1294],{},"）、",[17,2958,2959],{},"shape-rendering: auto","、48 高时顶端对齐（",[17,2962,2963],{},"offsetTop: 0",[140,2965,2966,2969],{},[155,2967,2968],{},"caption 字形墨色 \u002F 保真度",[155,2970,2971,2972,2975,2976,2979,2980,2983,2984,2987],{},"浅色 ",[17,2973,2974],{},"rgb(0, 0, 0)"," \u002F 深色 ",[17,2977,2978],{},"rgb(255, 255, 255)","；与 Windows 11 参考图 1:1 逐像素",[22,2981,2982],{},"墨量","平均差 ",[22,2985,2986],{},"2.09\u002F255","（最小化 0.00 \u002F 最大化 2.73 \u002F 关闭 3.59）",[140,2989,2990,2993],{},[155,2991,2992],{},"最小化 hover \u002F 关闭键 hover",[155,2994,2995,65,2998,3001],{},[17,2996,2997],{},"rgb(245, 245, 245)",[17,2999,3000],{},"rgb(196, 43, 28)","（= #C42B1C）+ 白字形",[140,3003,3004,3007],{},[155,3005,3006],{},"焦点矩形",[155,3008,3009],{},[17,3010,3011],{},"inset 0 0 0 2px rgb(0,0,0), inset 0 0 0 3px rgb(255,255,255)",[140,3013,3014,3017],{},[155,3015,3016],{},"失活标题",[155,3018,3019],{},[17,3020,3021],{},"rgb(97, 97, 97)",[140,3023,3024,3026],{},[155,3025,1259],{},[155,3027,1907,3028,3031,3032],{},[17,3029,3030],{},"0px","、无阴影、caption 字形 ",[17,3033,710],{},[140,3035,3036,3040],{},[155,3037,3038],{},[17,3039,2341],{},[155,3041,3042,3045,3046,968,3049,3045,3051],{},[17,3043,3044],{},"none"," ⇒ ",[17,3047,3048],{},"transition-duration: 0s",[17,3050,2357],{},[17,3052,3053],{},"border-radius, box-shadow, background-color",[140,3055,3056,3059],{},[155,3057,3058],{},"拖拽（真实指针）",[155,3060,3061,3062,3064,3065,3068,3069,3072,3073],{},"外壳用 CSS ",[17,3063,1602],{}," 承载：拖动 ",[17,3066,3067],{},"+60 \u002F +40 px"," 后 ",[17,3070,3071],{},"translate:60px 40px","（roundToInteger 下为整数）；拖动中 ",[17,3074,3075],{},"data-dragging=true",[130,3077,3078],{"id":3078},"实现要点",[44,3080,3081,3102,3123,3159,3186,3211,3265],{},[47,3082,3083,3089,3090,65,3092,65,3094,3096,3097,65,3099,3101],{},[22,3084,3085,3086],{},"高度判定照抄 ",[17,3087,3088],{},"UpdateHeight()","：只有 ",[17,3091,68],{},[17,3093,64],{},[17,3095,71],{}," 参与，",[17,3098,2107],{},[17,3100,2128],{}," 不影响高度档位。",[47,3103,3104,3107,3108,3110,3111,3113,3114,3117,3118,1096,3120,3122],{},[22,3105,3106],{},"caption 字形与原系统 chrome 的三处偏离（2026-10-16 校准）","：① 去掉 ",[17,3109,1314],{},"（它关掉抗锯齿，45° 笔画退化成硬边阶梯）；② 线宽 \u002F 端头改由 ",[17,3112,1321],{}," 的呈现属性逐字形输出（CSS 优先级高于呈现属性，留在样式块里会把逐字形值盖掉）；③ 墨色改用局部变量 ",[17,3115,3116],{},"light-dark(#000000, #ffffff)","（= ",[17,3119,1095],{},[17,3121,1102],{},"，token 表无同值档）。字形几何的候选 Δ 扫描见上文《caption 按钮的证据缺口》。",[47,3124,3125,52,3128,210,3131,3134,3135,3138,3139,3141,3142,3145,3146,3149,3150,591,3153,591,3156,87],{},[22,3126,3127],{},"Compact 折叠是「后声明组胜出」",[17,3129,3130],{},"TitleTextGroup",[17,3132,3133],{},"DisplayModeGroup"," 都会写 ",[17,3136,3137],{},"PART_TitleText.Visibility","，后者声明在后 ⇒ ",[17,3140,329],{}," 生效时标题 \u002F 副标题折叠、中段由居中改左对齐并右移 16。判据不是断点，而是「中段期望宽 ≥ 中段可用宽」（",[17,3143,3144],{},"contentArea.DesiredSize().Width >= contentAreaGrid.ActualWidth()","），阈值是",[22,3147,3148],{},"进入折叠那一刻的标题栏宽度","；Web 侧用一层隐藏镜像量期望宽（",[17,3151,3152],{},"visibility: hidden",[17,3154,3155],{},"aria-hidden",[17,3157,3158],{},"inert",[47,3160,3161,52,3164,3167,3168,3171,3172,3175,3176,3178,3179,3181,3182,3185],{},[22,3162,3163],{},"拖拽打洞的 Web 等价物",[17,3165,3166],{},"pointerdown"," 命中 ",[17,3169,3170],{},"[data-fui-app-window-nodrag]","、原生可交互元素或 ",[17,3173,3174],{},"[data-fui-app-window-drag-exempt]"," 时不启动拖拽 —— 对应 WinUI 的 passthrough 矩形。",[17,3177,1556],{}," 取消、",[17,3180,1559],{}," \u002F 失去捕获同样以 ",[17,3183,3184],{},"canceled=true"," 收尾。",[47,3187,3188,3191,3192,65,3195,3198,3199,3202,3203,3206,3207,3210],{},[22,3189,3190],{},"返回 \u002F 导航按钮暂不做 AnimatedIcon 动画","：WinUI 用 ",[17,3193,3194],{},"AnimatedBackVisualSource",[17,3196,3197],{},"AnimatedGlobalNavigationButtonVisualSource","（LottieGen 产物，",[17,3200,3201],{},"c_durationTicks"," = 13333333 ≈ 1.3333 s、画布 48×48、12 个 marker、主题属性 ",[17,3204,3205],{},"Foreground","），本库先用静态字形，动画随 0.5.4 ",[17,3208,3209],{},"NavigationView"," 落地（插槽已留出）。",[47,3212,3213,3216,3217,3219,3220,65,3223,3226,3227,34,3230,65,3233,65,3236,3239,3240,395,3243,3246,3247,3250,3251,3254,3255,3258,3259,56],{},[22,3214,3215],{},"未知缺口","：高对比度主题未实现（WinUI HC 下 ",[17,3218,949],{}," 走 ",[17,3221,3222],{},"SystemControl*",[17,3224,3225],{},"SystemColor*","）；材质令牌已由 0.4.4 落进 ",[17,3228,3229],{},"@fluere-vue\u002Fdesigns",[17,3231,3232],{},"micaBackgroundFillColorBase",[17,3234,3235],{},"acrylicInAppFillColorDefault",[17,3237,3238],{},"layerFillColorDefault"," 等，见 ",[17,3241,3242],{},"packages\u002Fdesigns\u002Fdata\u002Frepo-tokens.json",[17,3244,3245],{},"sources.materials","），但",[22,3248,3249],{},"材质合成","（渐变 + 半透明层 + 噪点）属 0.9.1 \u002F 0.9.2，本轮窗口底色仍用 ",[17,3252,3253],{},"colorNeutralBackground2","（沿用 ",[17,3256,3257],{},"SolidBackgroundFillColorBase"," 的既有映射），",[22,3260,3261,3262],{},"不写 ",[17,3263,3264],{},"backdrop-filter",[47,3266,3267,3275],{},[22,3268,3269,3271,3272],{},[17,3270,2107],{}," 不写 ",[17,3273,3274],{},"document.title","：WinUI 会真的改窗口标题并在清空时恢复默认标题，Web 侧不碰文档标题（避免污染文档站与 SSR）。",[1644,3277,3278],{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":406,"searchDepth":435,"depth":435,"links":3280},[3281,3282,3283,3284,3287,3288,3289,3293,3294],{"id":132,"depth":435,"text":132},{"id":254,"depth":435,"text":255},{"id":584,"depth":435,"text":585},{"id":687,"depth":435,"text":688,"children":3285},[3286],{"id":942,"depth":449,"text":943},{"id":1459,"depth":435,"text":1460},{"id":1785,"depth":435,"text":1785},{"id":2059,"depth":435,"text":2060,"children":3290},[3291,3292],{"id":2063,"depth":449,"text":19},{"id":2603,"depth":449,"text":693},{"id":2837,"depth":435,"text":2838},{"id":3078,"depth":435,"text":3078},"窗口外框样式容器：标题栏插槽、可拖拽区、caption 按钮事件代理与内容可视区域；位置、尺寸与层级由外壳控制。","md",{},{"title":5},true,"\u002Fcomponents\u002Fapp-window",{"title":5,"description":3295},"components\u002Fapp-window","qqaUcHl7hSWjWdTcKsWJ0bYHn5iAd29wOpFQ6UYPm2w",null,1792150920566]