跳到正文
浏览文档

Sheet

从侧边滑入、覆盖在暗化内容之上的面板,即 DrawerPage 的浮出模式。

示例可交互
Sheet — Avalonia UIKit
Live demo unavailable
<DrawerPage Name="Sheet" Classes="sheet" DrawerBehavior="Flyout" DrawerPlacement="Right" DrawerHeader="Edit profile"
            Width="560" Height="320" HorizontalAlignment="Left">
  <DrawerPage.Drawer>
    <StackPanel Spacing="12">
      <TextBlock Text="Make changes to your profile here. Click save when you're done."
                 Foreground="{DynamicResource UIKit.MutedForeground}" TextWrapping="Wrap" />
      <TextBox Text="Jason Lee" />
      <TextBox Text="@huacnlee" />
    </StackPanel>
  </DrawerPage.Drawer>
  <DrawerPage.DrawerFooter>
    <Button Classes="primary" Content="Save changes" />
  </DrawerPage.DrawerFooter>
  <StackPanel Spacing="8" Margin="16" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Button Classes="outline" Content="Open sheet" HorizontalAlignment="Left" Click="OnOpenSheet" />
    <TextBlock Text="The sheet slides in over the page." Foreground="{DynamicResource UIKit.MutedForeground}" />
  </StackPanel>
</DrawerPage>

用法

DrawerPage Classes="sheet" DrawerBehavior="Flyout" 即抽屉。页面是 DrawerPage 的内容,抽屉本身是 Drawer:其标题行由 DrawerHeader 提供(半粗体,带关闭按钮),主体下方是 DrawerFooter。当 IsOpen 变为 true 时,抽屉会在 150ms 内从其所在侧滑入 100px,覆盖在用主题遮罩暗化的内容之上;关闭时立即消失。在上面的演示中,按钮的 Click 处理器把 IsOpen 设为 true。

属性含义
IsOpen打开与关闭抽屉。
DrawerPlacement滑入的一侧:Left、Right、Top 或 Bottom。
DrawerLength其宽度,或从顶部、底部起算的高度;默认为 350。
DrawerHeader、Drawer、DrawerFooter标题行、主体与页脚。
BackdropBrush暗化效果;设为 {x:Null} 则没有。

要在 34px 的 标题栏 之下打开抽屉,请设置 UIKit.Sheet.Margin 资源。

若要在代码中从整个窗口之上打开抽屉,请使用 uikit:Sheet。

示例

四个方向,长度均为 240px;每个按钮的 Click 处理器根据自己的 Tag 设置 DrawerPlacement 并打开抽屉。

位置可交互
Live demo unavailable
<DrawerPage Name="Sheet" Classes="sheet" DrawerBehavior="Flyout" DrawerPlacement="Right" DrawerLength="240" DrawerHeader="Settings"
            Width="560" Height="320" HorizontalAlignment="Left">
  <DrawerPage.Drawer>
    <TextBlock Text="Sheet content" Foreground="{DynamicResource UIKit.MutedForeground}" />
  </DrawerPage.Drawer>
  <WrapPanel ItemSpacing="8" LineSpacing="8" Margin="16" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Button Classes="outline" Content="Left" Tag="Left" Click="OnOpenSheet" />
    <Button Classes="outline" Content="Right" Tag="Right" Click="OnOpenSheet" />
    <Button Classes="outline" Content="Top" Tag="Top" Click="OnOpenSheet" />
    <Button Classes="outline" Content="Bottom" Tag="Bottom" Click="OnOpenSheet" />
  </WrapPanel>
</DrawerPage>