你听我说-HandyControl手动控制CoverFlow翻页

简介: 你听我说-HandyControl手动控制CoverFlow翻页

6fca9172dd7708ae894ca0b582736fef.png

问题场景

使用HandyControl中[CoverFlow封面流图]https://handyorg.gitee.io/handycontrol/extend_controls/coverFlow/,自动轮播能够点击翻转,手动控制翻转需要如何去处理,请听笔者一步步讲,原始效果如下:

xaml页面:

<Grid>
    <hc:CoverFlow x:Name="CoverFlowMain" Margin="32" Width="500" Height="300"/>
</Grid>

xxx.cs代码:

public MainWindow()
{
    InitializeComponent();
    Init();
}
private void Init()
{
    CoverFlowMain.AddRange(new[]
    {
        new Uri("pack://application:,,,/YonLink.Tool.Authorize;Component/Resources/Imgs/1.png"),
        new Uri("pack://application:,,,/YonLink.Tool.Authorize;Component/Resources/Imgs/2.png"),
        new Uri("pack://application:,,,/YonLink.Tool.Authorize;Component/Resources/Imgs/3.png"),
        new Uri("pack://application:,,,/YonLink.Tool.Authorize;Component/Resources/Imgs/4.png"),
        new Uri("pack://application:,,,/YonLink.Tool.Authorize;Component/Resources/Imgs/5.png"),
        new Uri("pack://application:,,,/YonLink.Tool.Authorize;Component/Resources/Imgs/6.png")
    });
}

解决方案

通过查看Coverflow源码发现,控件本身,并有提供可以直接使用的函数或者方法去手动控制翻转,如果需要手动控制的话,需要直接使用控件的附加属性,进行人为给依赖属性PageIndexProperty设置值,以下为对应的Coverflow源码:

//
// 摘要:
//     页码
public int PageIndex
{
    get
            {
                return (int)GetValue(PageIndexProperty);
            }
    internal set
    {
        SetValue(PageIndexProperty, value);
    }
}

xaml中添加,两个按钮,一个用于控制上一页,一个控制下一页:

<Grid>
    <hc:CoverFlow x:Name="CoverFlowMain" Margin="32" Width="500" Height="300"/>
    <UniformGrid VerticalAlignment="Bottom" Rows="1">
        <Button x:Name="btn_pre" Content="上一个" Click="btn_pre_Click"></Button>
        <Button x:Name="btn_next" Content="下一个" Click="btn_next_Click"></Button>
    </UniformGrid>
</Grid>

xxx.cs事件内容如下:

private void btn_pre_Click(object sender, RoutedEventArgs e)
{
    // 上一页
    int num = CoverFlowMain.PageIndex - 1;
    //设置对应的依赖属性`PageIndexProperty`,用于通知页面变更
    CoverFlowMain.SetValue(CoverFlow.PageIndexProperty, num);
}
private void btn_next_Click(object sender, RoutedEventArgs e)
{
    // 下一页
    int num = CoverFlowMain.PageIndex + 1;
    //设置对应的依赖属性`PageIndexProperty`,用于通知页面变更
    CoverFlowMain.SetValue(CoverFlow.PageIndexProperty, num);
}

最终效果如下:


相关文章
你听我说-HandyControl调整样式色系
你听我说-HandyControl调整样式色系
274 0
|
数据安全/隐私保护 计算机视觉
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例) 一
|
小程序 算法 前端开发
小程序之移花宫-自定义底部标签图标---【浅入深出系列005】
小程序之移花宫-自定义底部标签图标---【浅入深出系列005】
LabVIEW显示控件中内容过长设置自动滚动条
本篇博文分享程序设计时一个细节小技巧,在LabVIEW显示控件中内容过长设置自动滚动条。
|
XML Java 程序员
WPF使用AvalonEdit实现代码高亮显示、搜索、替换功能
很多工程软件拥有自己定义的脚本语言,作为程序员用惯了具有高亮显示和智能提示功能的编辑器,所以针对特定的脚本自己开发一个编辑器。主要采用WPF、C#语言以及AvalonEdit控件。
WPF使用AvalonEdit实现代码高亮显示、搜索、替换功能
|
前端开发
前端工作总结104-控制弹出框不全屏
前端工作总结104-控制弹出框不全屏
73 0
|
前端开发
前端工作总结141-根据后台传值动态显示开关状态及文字说明(0为文字,1为图标)
前端工作总结141-根据后台传值动态显示开关状态及文字说明(0为文字,1为图标)
157 0
|
计算机视觉
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)一
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)
qss样式表笔记大全(四):可设置样式的窗口部件列表(下)(持续更新示例)一
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)二
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)
qss样式表笔记大全(三):可设置样式的窗口部件列表(中)(持续更新示例)二
|
计算机视觉
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)
qss样式表笔记大全(二):可设置样式的窗口部件列表(上)(持续更新示例)