Sheet
由代码打开、从一侧滑入并覆盖在变暗窗口之上的面板,即 uikit:Sheet。
示例可交互
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。