zoukankan      html  css  js  c++  java
  • WPF 实现ScrollViewer的垂直偏移滚动跳转

    问题:考虑屏幕大小,一般都是会在表单问卷的页面使用ScrollViewer。问卷中问题漏填漏选时,在提交时校验不过,需要滚动跳转至漏填漏选项。

    页面如下:

    每个选项使用StackPanel,并对复选框和单选的勾选事件进行答案记录,使用全局变量记录

    private readonly Dictionary<string, string> _dicAnswer = new Dictionary<string, string>();
    

    将所有选项使用StackPanel指定垂直样式,思路是借用字典记录每一题的答案,给题目编号记录,答案为空,即未回答该问题。
    在提交按钮的click事件中添加如下代码

    			var answer = _dicAnswer.First(_ => string.IsNullOrEmpty(_.Value));
                var title = answer.Key;
                double verticalOffset = 0;
                foreach (var child in QuestionsStackPanel.Children)
                {
                    if (!(child is StackPanel sp))
                    {
                        continue;
                    }
    
                    if (sp.Tag.ToString() != title)
                    {
                        continue;
                    }
    
                    //获取偏移量
                    var vector = VisualTreeHelper.GetOffset(sp);
    
                    verticalOffset = vector.Y;
                    break;
                }
                //滚动到指定的垂直偏移位置
                QuestionsScrollViewer.ScrollToVerticalOffset(verticalOffset);
    
  • 相关阅读:
    python django 创建app失败 升级sqlite3 或者修改数据库连接为mysql
    Decima json 化
    openpyxl excel操作
    centos添加python虚拟环境
    oracle的参数文件:pfile和spfile
    修改 db_unique_name
    工具 --- Vim
    部署 --- Nginx
    工具 --- Git使用
    django 之(五) --- RESTApi总结
  • 原文地址:https://www.cnblogs.com/AlienXu/p/9492755.html
Copyright © 2011-2022 走看看