Tag: dpi

C#缩放UserControl内容以匹配用户Dpi /字体大小

如何让OwnerDrawn UserControl尊重用户dpi(96/120 / xxx)和/或font-size(普通,大,超大)? 有些人建议在Graphics对象上使用DpiX和DpiY属性,但这似乎对我控制中的任何东西都没有(即它们总是设置为96,无论我选择哪种字体大小或dpi)。 StackOverflow上还有另一个类似的问题,它建议使用AutoScale属性,但建议的解决方案也没有做任何事情。 除了依赖WPF之外,在.NET中没有办法做到这一点吗?

使用DPI使WinForms正确扩展的问题

我遇到了让WinForms应用程序在高DPI设置下正确显示的问题。 我检查了各种网站,WinForms都有正确的AutoScaleMode。 我已经尝试将它设置为DPI和Font。 但是,当使用高DPI设置(例如125%)时,表格总是在底部附近被切断。 我添加了一些代码来检查,如果我将AutoScaleMode设置为DPI,当表单加载时,我看到表单加载时AutoScaleDimensions为120,120,而CurrentAutoScaleDimensions也为120,120。 在Form.designer.cs文件中,有一行将AutoScaleDimension设置为96,96。 如果我将AutoScaleMode设置为Font,那么我可以在设计器中看到AutoScaleDimension已正确设置为新的System.Drawing.SizeF(6F,13F),但是当表单加载时,AutoScaleDimension和CurrentAutoScaleDimension都设置为8F,16F。 这个应用程序混合了一些WPF和WinForms,WPF屏幕首先出现。 因此,基于混合WinForms和WPF应用程序中的.Net 3.5中的DPI Scaling,我尝试为应用程序设置TextFormattingMode,并为首先显示的WPF屏幕设置“显示”,但它没有任何区别。 坦率地说,我不知道造成这种情况的原因。 我想我可以通过在运行时检测DPI来添加代码来以编程方式resize,但我不应该这样做。 AutoScaleMode(和相关的)属性应该使这相当自动化。 那么我还应该检查哪些可能会导致这个问题呢?

WPF DPI问题

我开发了一个在我的计算机上看起来很棒的应用程序但是当我将它安装在具有不同分辨率和DPI设置的其他计算机上时,它看起来很糟糕。 控件彼此重叠,这只是悲惨的。 有没有人对如何避免这个有任何建议?

WinForms不同的DPI布局

以某种方式通过Visual Studio创建的表单和控件,设计器具有很强的自我扩展能力,具体取决于Windows的当前DPI /字体大小。 我的UI的一部分是一个标签控件,其中包含动态页面和标签/输入,具体取决于用户的选择。 创建这些时,它们使用的硬编码尺寸适合96 DPI。 在.Net中是否有自动方式来获取这些生成的控件并执行与设计器生成的控件相同的resize? 我想避免自己扩展控件,因为这是旧代码不易维护。

C#WPF解决方案独立性?

我正在使用C#在WPF中开发一个地图控件。 我正在使用canvas控件,例如400 x 200,其指定的地图区域为例如2,000mx 1,000m。 地图的比例为: canvas_size_in_meters / real_size_in_meters 。 我想找到canvas_size_in_meters。 canvas.ActualWidth给出DIU的宽度(设备独立单位)。 因此,400 DIU是400/96 = 4,17英寸, 提供我的显示器的物理分辨率为96 dpi。 但是,使用标尺,我发现我的显示器的物理分辨率是87 dpi。 (实际上只有少数显示器具有96个物理dpi) DPI差异(10%)转换为屏幕上实际地图控制宽度的+ 10%差异。 如何以英寸为单位测量WPF控件的大小,无论屏幕分辨率和DPI设置如何?

如何更改图像的分辨率(DPI)?

我有一张DPI为72的JPEG图片。我想将72 dpi更改为300 dpi。 如何使用C#更改JPEG图片的分辨率?

如何在C#.NET中获取DPI?

我正在尝试使用C#构建Windows窗体应用程序。 我如何在.NET中获得DPI? 我之前读过有DPIX和DPIY,它可以在.NET中用来获取当前的DPI。 那是对的吗? 谢谢大家。

如何使我的WinForms应用程序DPI意识

我在一家拥有Winforms应用程序作为我们旗舰产品的公司工作。 我们最近重新设计了品牌和用户界面。 我们注意到,窗体现在不能正确显示文本,并且某些控件未对齐或已从边缘消失。 由于我们没有时间,因此我可以使用最少量的重新分解来在此应用程序DPI-Aware上制作表单。

C#WinForms禁用DPI缩放

我有一个WinForm应用程序,它承载了许多图像。 当我将应用程序放在DPI为120的Win7机器上时,它完全破坏了表单的外观。 有没有办法禁用我的表单缩放? 我知道这是不建议的事情,DPI应该是无缝的并由操作系统处理。 但是当谈到皮肤应用程序时,图像不能很好地扩展。 我没有为所有DPI变体创建图像的奢侈,所以请不要建议作为答案。