草庐IT

dpi-aware

全部标签

c# - DPI 和 PPI | DPI 或 PPI

DPI和PPI有什么区别吗?是这样吗:点=像素?最后,C#.net中的DpiX和DpiY是什么?我们如何改变它们? 最佳答案 新闻部代表每英寸点数,在打印时使用。它也被严重滥用于屏幕分辨率。彩色墨水打印机不会混合颜色,而是每种颜色都有自己的“插槽”。当打印机说12000dpi时,对于基于5色的打印机,它实际上是12000/5“像素”。尽管如此,DPI只有在打印结果的上下文中才会变得有趣。Photoshop使用图像的DPI信息来告诉您图像的打印尺寸。许多人将DPI误解为图片图像质量或像素密度的度量。例如,如果您在Photoshop中更

java - 当用户在 Windows 设置上更改屏幕分辨率时,如何使用 Java 获得正确的显示 DPI?

为了能够获得dpi值,我正在使用这个:floatdpi=Toolkit.getDefaultToolkit().getScreenResolution();预先显示设置,当我应用1366x768作为分辨率值时;dpi值返回96(这是我所期望的)但是,当我在设置中将800x600更改为分辨率值时;dpi值返回96(该值应低于96)当我在ma​​c计算机上尝试相同的情况时,正确的值出现了。我认为来自Windows操作系统的分辨率值有问题。我已经针对Windows7和Windows10进行了测试。编辑:要理解为什么我需要这个值,请检查这个问题及其answer. 最

windows - 是否有一种简单的方法可以强制Windows使用固定的DPI值而不是当前DPI设置来计算文本范围?

我想知道是否有一种简单的方法来计算字符串的文本范围(类似于GetTextExtentPoint32),但是允许我指定要在计算中使用的DPI。换句话说,是否有一个功能与GetTextExtentPoint32完全一样,但是允许我将DPI作为参数传递,或者是一种“欺骗”GetTextExtentPoint32以使用我可以指定的DPI的方法?在您问“为什么要这样做?”之前,我将尽力解释,但请允许我理解,此请求背后的原因有些涉及。最终,这是针对自定义自动换行算法的,该算法将长字符串分成较小的文本块,这些文本块需要整齐地适合具有复杂文本布局要求的CrystalReport(它模仿了警察用于提起刑

windows - 关于 DPI 问题

我有一个WIN32软件,其UI设计为96DPI,因此当用户将WindowsDPI从96更改为120或更大时,UI会出错。我想知道是否有API可以强制我的软件以96DPI显示UI。 最佳答案 从WindowsVista开始,DPI的缩放应该会自动发生。我没有任何直接经验可以知道它的效果如何,但这里是解释如何关闭它的页面:http://msdn.microsoft.com/en-us/library/ms701681(VS.85).aspx 关于windows-关于DPI问题,我们在Stac

c++ - 真的需要 DPI 意识吗?

我正在学习如何使用GDI/GDI+绘制GUI,我发现了这个http://msdn.microsoft.com/en-us/library/windows/desktop/dd756596(v=vs.85).aspx#step_2__declare_that_the_application_is_dpi-aware是否每个应用程序都进行该计算以便正确显示或什么?有人可以解释如何计算按钮、图像和窗口上所有控件的客户端坐标,以便它们在不同分辨率下具有相同的对齐方式吗?提前致谢。 最佳答案 使用GDI,您可以使用GetDeviceCaps函

wpf - C# 在 Windows 中为每个监视器获取 DPI 缩放

我正在使用WPF应用程序中的代码,该应用程序需要计算出Windows中每个显示器的DPI缩放大小。我能够计算出主屏幕的DPI,但出于某种原因我不知道如何获得其他显示器的比例-其他显示器都返回与主显示器相同的DPI。有一些代码可以执行此操作,请耐心等待。第一组代码处理基于HWND获取DPI。该代码获取事件监视器,然后检索DPI设置并将数字与96DPI(通常为100%)的比率进行比较。publicstaticdecimalGetDpiRatio(Windowwindow){vardpi=WindowUtilities.GetDpi(window,DpiType.Effective);dec

c++ - WM_POINTER 和高 DPI 设置

我已经在桌面触摸屏上使用Windows8TouchAPI(WM_POINTERDOWN/WM_POINTERUPDATE/WM_POINTERUP)工作了一段时间.然后我在Windows8平板电脑上尝试了我的测试程序,发现我的应用程序无法准确检测到用户触摸屏幕的位置。另一方面,使用鼠标效果很好:我得到了正确的坐标。由于我启用了EnableMouseInPointer(TRUE)模式,这意味着正在使用相同的代码来处理鼠标事件和触摸事件,这至少意味着我的代码在某种程度上可以正常工作。我发现,平板电脑启用了高DPI模式,使用户可以触摸屏幕上本来很小的东西。当我更改平板电脑上的DPI以消除缩放

c - 当 DPI 设置为 150% 时关闭 Aero (Windows 7),全屏窗口仅覆盖任务栏

我有一个相当标准的C++程序,我在其中创建了一个全屏窗口(带有两个子窗口)。在我的Windows10开发计算机上,此窗口会填满整个屏幕并覆盖任务栏。在Windows7上,它不覆盖任务栏。经过一些试验,似乎如果我关闭Aero,程序将覆盖任务栏!我还创建了一个快速的C#/WPF应用程序,无论Aero的状态如何,该应用程序都能够覆盖任务栏。我是否缺少窗口消息或窗口的创建选项?这是定位和创建窗口的代码//Getahandletotheprimarymonitor,whichbydefinitionhasitstop//leftcornerat(0,0).constPOINTptZero={0,

excel - 如何防止因 DPI 变化而缩放?

我在PowerpointVBA宏中使用Shapes.AddOLEObjectPowerpoint功能来获取Excel图表文件(扩展名:.xls)单击[显示图表]按钮。SetshapeOnPPT=ActivePresentation.Slides.FindBySlideID(mySlideID).Shapes.AddOLEObject(Left:=100,_Top:=100,Width:=500,Height:=400,FileName:="c:\ThisDoc\testing.xls",Link:=msoTrue)问题在我更改我的计算机显示器的DPI/分辨率并单击[显示图表]按钮后,新

windows - 图标分辨率 : Pixels vs DPI

当我尝试研究为Windows制作图标,以及在保存之前我应该​​在我的.ico文件中保留什么大小/分辨率的图像时,有太多奇怪的信息。有人说在96DPI中放置16x16、24x24、32x32、48x48...等等。这就是让我恼火的地方,我觉得这没有任何意义。不是1像素=1像素吗?为什么他们坚持要将DPI混入其中? 最佳答案 永远正确的是1像素=1像素。真正改变的是像素在具有不同屏幕密度的各种显示器上的大小。这就是DPI所描述的-每英寸的点数(像素)。但是在图像大小的上下文中使用DPI只有当您将它与英寸(厘米)结合使用时才有意义。例如“