mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-19 06:58:57 +08:00
4.2 KiB
4.2 KiB
Carousel API 参考
命名空间
namespace AtomUI.Desktop.Controls;
AXAML 命名空间前缀:atom(xmlns:atom="https://atomui.net")
枚举类型
CarouselPaginationPosition
分页指示器位置枚举。
| 值 | 说明 |
|---|---|
Top |
顶部居中 |
Bottom |
底部居中(默认) |
Left |
左侧居中(指示器旋转 90°) |
Right |
右侧居中(指示器旋转 90°) |
CarouselTransitionEffect
页面过渡效果枚举。
| 值 | 说明 |
|---|---|
Scroll |
滑动切换(默认),方向跟随 PaginationPosition |
Fade |
淡入淡出切换 |
Carousel 公共属性(StyledProperty)
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
IsShowNavButtons |
bool |
false |
是否显示导航箭头按钮 |
IsAutoPlay |
bool |
false |
是否自动播放 |
AutoPlaySpeed |
TimeSpan |
3000ms |
自动播放间隔时间 |
PaginationPosition |
CarouselPaginationPosition |
Bottom |
分页指示器位置 |
IsShowPagination |
bool |
true |
是否显示分页指示器 |
IsShowTransitionProgress |
bool |
false |
是否在指示点上显示播放进度条 |
IsInfinite |
bool |
true |
是否无限循环 |
PageTransitionDuration |
TimeSpan |
MotionDurationSlow(Token) |
页面过渡动画时长 |
PageInEasing |
Easing |
CubicEaseOut |
页面进入缓动函数 |
PageOutEasing |
Easing |
CubicEaseOut |
页面离开缓动函数 |
TransitionEffect |
CarouselTransitionEffect |
Scroll |
过渡效果类型 |
IsMotionEnabled |
bool |
跟随全局 Token(EnableMotion) |
是否启用过渡动画(共享属性) |
IsSwipeEnabled |
bool |
false |
是否启用滑动手势切换 |
继承自 SelectingItemsControl 的常用属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
SelectedIndex |
int |
0 |
当前选中页索引 |
SelectedItem |
object? |
null |
当前选中页对象 |
ItemCount |
int |
(只读) | 页面总数 |
Items |
ItemCollection |
空 | 子项集合 |
ItemsSource |
IEnumerable? |
null |
数据源(用于数据绑定) |
ItemTemplate |
IDataTemplate? |
null |
子项模板 |
Background |
IBrush? |
null |
背景色 |
Foreground |
IBrush? |
null |
前景色 |
Padding |
Thickness |
0 |
内间距 |
公共方法
| 方法名 | 返回值 | 说明 |
|---|---|---|
Next() |
void |
切换到下一页。无限循环模式下,末尾页切换到首页 |
Previous() |
void |
切换到上一页。无限循环模式下,首页切换到末尾页 |
伪类(Pseudo-Classes)
Carousel 本身没有定义额外的自定义伪类。
继承的标准伪类
| 伪类 | 触发条件 |
|---|---|
:pointerover |
鼠标悬浮 |
:disabled |
IsEnabled == false |
实现的接口
IMotionAwareControl
public bool IsMotionEnabled { get; set; }
控制指示点宽度过渡动画和导航按钮不透明度过渡动画。
CarouselPage API
走马灯页面容器,继承自 ContentControl。无额外属性定义。
namespace AtomUI.Desktop.Controls;
public class CarouselPage : ContentControl
继承的常用属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Content |
object? |
null |
页面内容 |
ContentTemplate |
IDataTemplate? |
null |
内容模板 |
Background |
IBrush? |
null |
页面背景色 |
HorizontalContentAlignment |
HorizontalAlignment |
Stretch |
内容水平对齐 |
VerticalContentAlignment |
VerticalAlignment |
Stretch |
内容垂直对齐 |
CarouselNavButton API
导航箭头按钮,继承自 IconButton。添加了 Opacity 的过渡动画。
namespace AtomUI.Desktop.Controls;
public class CarouselNavButton : IconButton
主题默认样式
| 属性 | 值 | 说明 |
|---|---|---|
IconWidth / IconHeight |
ArrowSize(Token) |
箭头图标大小 |
IconBrush |
ColorBgContainer |
箭头图标颜色(白色系) |
Opacity |
0.2 → :pointerover 时变为 1.0 |
默认半透明,悬浮时完全显示 |