跳到正文
浏览文档

Sheet

由代码打开、从一侧滑入并覆盖在变暗窗口之上的面板,即 uikit:Sheet。

示例可交互
Sheet — Avalonia UIKit
Live demo unavailable
<Border Width="560" Height="320" HorizontalAlignment="Left">
  <WrapPanel ItemSpacing="8" LineSpacing="8" Margin="16" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Button Classes="outline" Content="Left" Tag="Left" Click="OnShowSheet" />
    <Button Classes="outline" Content="Right" Tag="Right" Click="OnShowSheet" />
    <Button Classes="outline" Content="Top" Tag="Top" Click="OnShowSheet" />
    <Button Classes="outline" Content="Bottom" Tag="Bottom" Click="OnShowSheet" />
    <Button Classes="outline" Content="Half the width" Click="OnShowHalf" />
  </WrapPanel>
</Border>

用法

uikit:Sheet 是由代码打开的 Sheet,覆盖整个窗口:new Sheet { Title = "Settings", Content = ... }.Show(this)。它位于窗口的覆盖层上,因此从它打开的弹出层会保持在其上方,且每个窗口同时只打开一个抽屉:显示另一个会关闭已打开的那个。打开时会把焦点移入其中,并把 Tab 限制在内;Escape、关闭按钮与在覆盖层上按下都会关闭它,焦点也会回到原处。无论以何种方式关闭都会引发 Closed,Sheet.GetActive(visual) 返回当前打开的那个。

属性含义
Placement滑入的一侧:Left、Right(默认)、Top 或 Bottom。
Size它的宽度,或从顶部、底部算起的高度:像素(默认 350)或窗口的一部分,例如 50%。
Title、Content、Footer标题行、主体(可滚动)与页脚。
HasOverlay窗口是否变暗;若为 false,覆盖层是透明的,但仍会接收按下事件。
IsOverlayClosable在覆盖层上按下是否会关闭抽屉。

该演示从每一侧各打开一个抽屉,还有一个宽度为窗口一半的抽屉;页脚中的按钮调用 Close。