12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 用于记录已添加的自定义样式和自定义控件模板,防止重复造轮子。
- 每条记录至少包含以下信息:名称、用途(仅用于某个具体功能or莫类型功能通用)、使用方法、效果、备注(有哪些要注意的地方)
- 样式
- 1.TabControlWithUnderLineStyle
- 样式位置:PDF Office\Styles\TabControlStyle.xaml
- 用途:用于调整HeaderPanel水平居中(不影响Content位置的前提下)
- 目前用于:阅读页工具栏、BOTA多页签部分
- 2.InsideBarBtnStyle
- 样式位置:PDF Office\Styles\TabControlStyle.xaml
- 用途:工具条的透明按钮
- 示例:D:\PDF_Office\PDF Office\Views\Tools\ToolsBarContent.xaml
- 3.CheckBoxStyle
- 样式位置:PDF Office\Styles\TabControlStyle.xaml
- 用途:是否设置相对目标页面比例的CheckBox,点击后变为黑底白勾
- 示例:D:\PDF_Office\PDF Office\Views\EditTools\Background\BackgroundCreateColorContent.xaml
- 备注:勾符号的Path可能需要重绘
- 自定义控件
- 1.LoadingContorl
- 位置:PDF Office\CustomControl\LoadingControl.xaml
- 用途:耗时操作过程中,显示圆形转圈的等待界面
- 使用方法:View里添加该控件、通过绑定VM里的Vibility类型变量来控制显示和隐藏,需要做异步处理才会显示出来
- 2.ToastControl
- 位置:PDF Office\CustomControl\ToastControl.xaml
- 用途:部分操作后,在界面中间显示提示,一段时候后自动渐隐消失
- 使用方法:VM里绑定一个bool变量,设为True时,Toast开始显示,开始渐隐时间(beginTime),和渐隐时间(Duration)在xaml里设置
- 3.WritableComboBox
- 位置:PDF Office\CustomControl\WritableComboBox.xaml
- 用途:设置页面范围
- 提供可选项:全部页面,奇数页,偶数页,自定义页面,可在xaml.cs中用Loading方式添加当前页选项
- 使用方法:绑定Text,搭配Helper/HomePageEditHelper.cs中的GetPagerange方法。
- 4.NumericUpDown
- 位置:PDF Office\CustomControl\NumericUpDown.xaml
- 用途:一个TextBox和两个按钮,可以输入数字,并通过旁边的按钮调节数字,每次+1/-1
- 使用方法:Text和后台属性绑定,按按钮或者输入数字时自动修改。
- 5.CommonWritableComboBox
- 位置:PDF Office\CustomControl\CommonWritableComboBox.xaml
- 用途:设置带单位可输入的ComboBox
- 提供可选项:绑定TypeSource设置可选项
- 使用方法:设置Text设置初始值,绑定Value获得无单位的真值,Unit设置单位无单位为" "空格,其他单位为单个字符单位"%"
- 6.PageTurningPreview
- 位置:PDF Office\CustomControl\PageTurningPreview.xaml
- 用途:普通预览控件,可进行翻页
- 使用方法:load自定义控件时设置PageIndexLists(负责控制页数),cpdfdocment(负责渲染的文件)
- 7.BatchStatus
- 位置:PDF Office\CustomControl\BatchStatus.xaml
- 用途:批量处理进度显示
- 使用方法:StatusValue{设置等于,"complete"(显示绿色背景勾形符号)、"error"(显示红色背景感叹符号)、
- "wait"(显示等待闹钟)、"为数字时"(显示进度条)}
- 8.CheckPasswordDialog
- 位置:PDF Office\Views\Dialog\ToolsDialogs\SaftyDialogs\CheckPasswordDialog.xaml
- 用途: 密码校验
- 使用方法
- ```C#
- VerifyPasswordResult result = SecurityHelper.VerifyPasswordByPasswordKind(PDFViewer.Document, EnumPasswordKind.StatusPermissionsPassword, dialogs);
- //或 VerifyPasswordResult result = SecurityHelper.VerifyPasswordForSelectedPermissions(PDFViewer.Document, PermissionsSubset, dialogs);
- if (result.IsDiscryptied)
- {
- if (result.Password != null)
- {
- string filePath = PDFViewer.Document.FilePath;
- PDFViewer.CloseDocument();
- PDFViewer.InitDocument(filePath);
- PDFViewer.Document.UnlockWithPassword(result.Password);
- PDFViewer.Load();
- }
- ///TODO:
- ///此处填入需要执行的代码
- }
- ```
- 备注:
- SecurityHelper.VerifyPasswordByPasswordKind需要传入的参数:PDFViewer.Document,需要验证的密码类型(开启密码/权限密码),当前ViewModel的IDialogService对象
- ecurityHelper.VerifyPasswordForSelectedPermissions需要传入的参数:PDFViewer.Document, 需要验证的权限子集(形如 枚举1|枚举2|枚举3),当前ViewModel的IDialogService对象。
- 返回值result对象包含两个成员:IsDiscryptied标志是否可以解锁/提权,Password对象标志当前正确的密码,当密码为空时表示当前无需输入。
- 该框架下的一些状态说明,
- IsDiscryptied == false 解锁/提权失败,拒绝下一步
- IsDiscryptied == true password == null; 当前无需解锁/提权,不会唤起输入密码弹窗,直接进行下一步
- IsDiscryptied == true password != null; 提权/解锁成功,共用当前PDFView的同权限级别操作全部开放,不再需要校验
- * 下一步 *指解锁后的具体业务操作,例如唤起需求复制权限的弹窗等
|