我正在研究iPhone应用程序的模板,并想知道它使用了什么dpi分辨率?300还是72?
我不确定,我希望有人能回答我这个问题.
所以我试图弄清楚Form的AutoScaleMode属性如何可能有助于支持具有与我的工作开发机器不同的字体或DPI的系统.
从SDK:
AutoScaleMode枚举
public enum AutoScaleMode
None Automatic scaling is disabled. Font Controls scale relative to the dimensions of the font the classes are using, which is typically the system font. Dpi Controls scale relative to the display resolution. Common resolutions are 96 and 120 DPI.
默认情况下,.NET 2.0 Forms使用AutoScaleMode.Font.
所以我在我的Windows XP,Tahoma 8 pt,96 DPI开发机器上设计了一个样本表单.然后我试了一下
结果并不令人鼓舞,您可以在此屏幕截图中看到:

AutoScaleMode属性未设计为启用.NET窗体以支持不同的字体或DPI设置.那么支持不同字体和DPI设置的正确方法是什么?
美好的一天!
我已经在WPF应用程序上工作了一段时间(作为一种学习经验,哦,这是一次学习经历),它终于准备发布了.发布意味着将其安装在我的HTPC上,用于浏览我的电影收藏.
我在我的PC上设计了它,它运行1920*1080,但是在正常的DPI设置下,而HTPC/TV以相同的分辨率运行但DPI设置更高,原因很明显.
问题是我的应用程序在HTPC上疯狂,就视觉效果而言几乎搞乱了一切.我知道这是由于糟糕的设计(mea culpa),但由于它是一个仅供我使用的应用程序,我正在寻找快速修复,而不是完全重新设计.我读过可以通过将以下内容添加到AssemblyInfo.cs来阻止应用程序识别DPI:
[assembly: System.Windows.Media.DisableDpiAwareness]
Run Code Online (Sandbox Code Playgroud)
但是,它似乎没有任何影响,应用程序的行为保持不变.
有人能指出我正确的方向吗?
谢谢你,约翰
我有一张DPI为72的JPEG图片.我想将72 dpi更改为300 dpi.
如何使用C#更改JPEG图片的分辨率?
我已经开始使用Adobe Photoshop为我的Android应用程序制作图形了.但是我无法继续,因为Photoshop中的分辨率设置为每英寸像素,正如官方Google文档所说,Android将需要以dpi设置的图像.我在网上搜索了两者之间的转换,但从未以任何正确的公式结束.
我知道Android文档将关系描述为px = dp*dpi/160.但我的问题是,如果我知道dpi在哪里可以获得在此计算中使用的dp的值?或者是否有关于dp值的假设?我很迷惑.
我正在阅读dp,dip,px,sp测量,但我仍然有一些关于dp/dpi vs ppi vs px vs inch的问题.我无法比较它们......是最大的一英寸?
他们说160 dpi意味着每英寸160像素.这是否意味着1英寸包含160像素?
他们还说160 dpi屏幕上的1个像素= 1 dp.这是否意味着1像素和1 dp相等?
最后,我们为什么要使用dp而不是px?我明白这是理想的,但为什么呢?
我试图弄清楚如何使用适当的对话单元(DLU)在WPF中布局一个简单的对话框.
什么是对话单元?
对话框是基于用户首选字体大小的度量单位.定义一个对话框单元,使得平均字符宽4个对话框单位,高8个对话框单位:
这意味着对话单元:
- 用所选字体更改
- 已选择DPI设置更改
- 不正方形
我花了大约两个小时从Windows Vista中使用各种dlu测量标注这个示例对话框.有人可以给出生成此对话框的相应XAML标记吗?
(图片链接)
现在我承认我对WPF XAML几乎一无所知.每次我开始,我都会受到阻碍,因为我无法弄清楚如何进行任何控制.似乎WPF中的所有内容都必须包含在某种面板中.有StackPanels,FlowPanels,DockPanel,Grid等.如果你没有这些,那么它将无法编译.
到目前为止,我唯一能够提出的XAML(uing XAMLPad):
<DockPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Image Width="23" />
<Label>Are you sure you want to move this file to the Recycle Bin?</Label>
<Image Width="60" />
<Label>117__6.jpg</Label>
<Label>Type: ACDSee JPG Image</Label>
<Label>Rating: Unrated</Label>
<Label>Dimensions: 1072 × 712</Label>
<Button Content="Yes" Width="50" Height="14"/>
<Button Content="Cancel" Width="50" Height="14"/>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
这是一个华而不实的怪物.没有任何控件放置或尺寸正确.我无法弄清楚如何在窗口中定位控件,也无法正确调整它们的大小.
有人可以将该屏幕截图转换为XAML吗?
注意:您不能测量屏幕截图.指定了所有对话单位(dlu)的宽度和高度.
注意: 1个水平DLU!= 1个垂直DLU.水平和垂直DLU的大小不同.
我要发布我的应用程序,它是一个1.2Mb的apk,包括4种不同格式的大约120个图标(ldpi,mdpi,hdpi,x-hdpi).
如果我添加xx-dpi和xxx-hdpi图标,apk会变大,加载时间会增加.
有许多入门级设备,内存非常loooow,我希望我的应用程序可以在任何地方运行.
我真的需要添加xx-hdpi吗?
是否有真正的设备需要xxx-hdpi?
我试图让Windows 8.1识别我一直在尝试构建的Delphi XE6应用程序(一个演示程序),让它认识到我的应用程序是Per-Monitor DPI识别的,纯粹是通过Manifest技术.Delphi XE6(以及所有其他类似的最新版本的Delphi)在Project Options中添加了一个易于操作的清单,我已经这样做了.
这是我使用MSDN资源确定的.manifest内容.我怀疑它可能有些不正确.
如果您想尝试此清单,请创建一个空的VCL应用程序,将此内容用作清单,然后添加代码(代码当前附加到我对此问题的答案).
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<!-- Per Monitor DPI Awareness in Windows 8.1 uses asmv3:application + asmv3:windowsSettings -->
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>True</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
<!-- Dear Microsoft, Don't Lie to Me About What Version of Windows I am On -->
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista and Windows Server 2008 -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 and Windows Server 2008 R2 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 and …Run Code Online (Sandbox Code Playgroud) R 题.
我有这么被迷惑width,height,dpi和unit.
为什么以下两种尺寸不同?
ggsave(filename = "foo.png",ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(size=2, shape=23),width = 5, height = 4, dpi = 300, units = "in", device='png')
Run Code Online (Sandbox Code Playgroud)
和
ggsave(filename = "foo.png",ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(size=2, shape=23),width = 5, height = 4, dpi = 72, units = "in", device='png')
Run Code Online (Sandbox Code Playgroud)
我将图片的大小设置为5(英寸)*4(英寸).但是为什么当我改变时dpi,尺寸会发生变化?
如何理解之间的关系height,width,unit和dpi?
或者如何将这四个参数转换为像素单位,这对我来说更容易理解?