我使用Windows窗体来托管使用SharpDX RenderForm
的DirectX渲染的内容。问题是,当我设置表单Size
时,它会根据显示器的缩放因子进行缩放,这不是我所需要的,因为我是基于像素的渲染。
我尝试将表单的AutoScaleMode
设置为None
,但似乎没有效果。
我还在System.Windows.Forms.ApplicationConfigurationSection
中使用了DpiAwareness
以及应用程序清单中的相应设置。
我的目标是以像素为单位做所有事情。
1条答案
按热度按时间gmxoilav1#
在创建主窗体之前运行的这一行对我很有效:
原因是,通过显式声明对缩放的感知,您可以选择退出Windows窗体,通过隐式乘以所有大小来为您处理缩放。
AutoScaleMode
原来是不需要的。根据
SetHighDpiMode
documentation,manifest方法应该也可以工作,但我怀疑在从JetBrains Rider启动项目时,有些侥幸阻止了它。