StyleAndTemplateList.txt 5.0 KB

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