「实战应用」如何用图表控件SciChart WPF实现应用步伐的DPI感知? ...

打印 上一主题 下一主题

主题 1027|帖子 1027|积分 3081

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
SciChart WPF Charts是一个实时、高性能的WPF图表库,专为金融、医疗和工程应用而计划。使用DirectX和SciChart WPF专有渲染引擎,以及约50种2D和3D WPF图表范例、灵活的API和五星级支持,SciChart非常适合需要极端性能和光滑交互式图表的项目。其广泛的 API 和自界说选项使开辟者能够创建丰富、互动且视觉结果出色的图表,以满足各种应用需求。
随着当代软件情况越来越多地超过具有差别分辨率和像素密度的多个表现器,WPF应用步伐在所有表现器上保持清楚是至关紧张的。DPI (Dots Per Inch)感知可确保UI元素、文本和图表在具有差别DPI设置的表现器之间移动时不会显得模糊。


在本教程中,我们将介绍如何使SciChart WPF应用步伐支持DPI,通过修改应用步伐清单并对图表控件举行一些调整,您可以确保应用步伐正确缩放,并在所有监督器上保持视觉清楚度
立即获取SciChart WPF v8.0试用
Step 1:添加DPI感知清单

要使WPF应用步伐支持DPI,首先需要修改应用步伐清单文件。清单指定应用步伐在具有差别DPI设置的表现器之间移动时应该如何表现。
1.1. 添加清单文件:在Visual Studio中,右键单击项目,选择Add,然后选择New Item,搜索应用步伐清单并将其添加到项目中。
1.2. 修改清单:应该将以下XML片段添加到清单文件中,请确保运行Windows 10 Anniversary更新或更新体系的Per-Monitor DPI感知,并为运行Windows旧版本的体系提供兼容性。
  1. <application xmlns="urn:schemas-microsoft-com:asm.v3">
  2. <windowsSettings>
  3. <!-- The combination of below two tags have the following effect: -->
  4. <!-- 1) Per-Monitor for >= Windows 10 Anniversary Update -->
  5. <!-- 2) System < Windows 10 Anniversary Update -->
  6. <dpiAwareness xmlns=" http://schemas.microsoft.com/SMI/2016/WindowsSettings"> PerMonitor</dpiAwareness>
  7. <dpiAware xmlns=" http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
  8. </windowsSettings>
  9. </application>
复制代码
1.3. 构建和测试:修改清单后,重新构建应用步伐。在差别DPI设置的表现器之间移动应用步伐现在应该会产生一个清楚的界面,没有任何模糊或失真。
A. 在启用DPI感知之前,图表在高分辨率表现器上大概会显得模糊。
B. 在使应用步伐感知DPI之后,图表呈现清楚,在监督器上保持视觉清楚度。




Step 2:在图表中重写DPI更改处理

清单就位后,下一步是确保应用步伐在DPI更改时动态调整。对于SciChart WPF应用步伐,这涉及覆盖SciChartSurface中的OnDpiChanged方法,以基于当前DPI设置应用缩放转换。
  1. protected override void OnDpiChanged(DpiScale oldDpi, DpiScale newDpi)
  2. {
  3. var scaleFactorX = newDpi.DpiScaleX;
  4. var scaleFactorY = newDpi.DpiScaleY;
  5. // Apply scaling transformation
  6. LayoutTransform = new ScaleTransform(scaleFactorX, scaleFactorY);
  7. }
复制代码
此方法盘算X和Y坐标的新DPI比例因子,并将其应用于 SciChartSurface ,以确保图表和其他UI元素保持锐利和比例。
Step 3:确保位图缩放模式

在WPF中,默认的位图缩放模式会在DPI调整期间导致模糊。通过将BitmapScalingMode设置为NearestNeighbor,您可以确保应用步伐在没有插值的情况下呈现图像和图表,纵然在高DPI值下也能保持清楚度。
  1. RenderOptions.SetBitmapScalingMode(chartSurface, BitmapScalingMode.NearestNeighbor);
复制代码
此步骤确保所有视觉元素(包括图表、标签和图标)保持其清楚度,特殊是当用户缩放表现或跨监督器移动应用步伐时。
Step 4:测试DPI感知

通过这些调整,您现在可以在差别的表现器上使用差别的DPI设置测试应用步伐。无论表现在哪个表现器上,应用步伐都应该保持清楚。具体来说,要查抄:


  • 文本标签保持清楚。
  • 图表和网格线渲染无失真。
  • 当您在具有差别DPI的监督器之间移动窗口时,整体UI一致性。
在SciChart WPF应用步伐中制定DPI感知尺度

通过在SciChart WPF应用步伐中制定DPI感知,您可以确保它在差别的表现设置中表现最佳。无论用户是在1080p表现器还是4K表现器上工作,图表、UI和文本都将保持其清楚度和清楚度,提供一致和专业的用户体验。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表