在CSS中使用像素数而不是百分比的兼容性方面是不是很糟糕?降低分辨率怎么样?可以在1-100的范围内使用它们吗?
找到工作区测量并在代码中设置一些属性以便它可以绑定到xaml中的Control的边距或高度/宽度属性是一个好习惯吗?
我这样做是为了让我的窗口根据可用的工作区调整大小.
const int w = SystemParameters.WorkArea.Width;
const int h = SystemParameters.WorkArea.Height;
public Thickness OuterGridMargin { get; }
MainViewModel()
{
OuterGridMargin = new Thickness(w/5,h/6,w/5,h/4);
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<Grid Margin="{Binding OuterGridMargin}" />
Run Code Online (Sandbox Code Playgroud)
我为一些外部容器执行此操作,以便布局不会以较低的分辨率混淆.目前我在20英寸的1600x900 res(96 dpi)下工作.我的应用程序是小工具,没有常规窗口.
我想知道是否有一些替代方法.
搜索[wpf]分辨率] 1提出了很多解决类似问题的问题,但我仍然陷入困境,无法得出如何实现良好的分辨率无关布局的结论.
我有一个WPF应用程序,我将在大型高分辨率投影仪上向观众演示,我担心应用程序太小而无法远远看到.
是否有一种简单的方法可以使整个ENTIRE应用程序更大(比如WPF设计器中的缩放滑块,可以放大?)我尝试在XAML中向窗口添加布局转换,如下所示:
<Window.LayoutTransform>
<ScaleTransform ScaleX="1.5" ScaleY="1.5" CenterX=".5" CenterY=".5" />
</Window.LayoutTransform>
Run Code Online (Sandbox Code Playgroud)
这使得窗口在设计器中看起来更大,但似乎对正在运行的应用程序没有影响.
我认为这应该是简单的WPF的"分辨率独立",高科技文本渲染,矢量图形等.
(我知道我可以使用屏幕缩放工具,但这很蹩脚,因为它会使一切变得模糊,并且当演示者在屏幕周围平移时总是让我晕眩.)
我正在编写一个全屏3D游戏,我创建了一个菜单,用户可以选择屏幕分辨率以匹配他的硬件容量.
我正在枚举所有可用的屏幕模式,EnumDisplaySettingsExA
如下所示:
std::vector<DEVMODEA> modes;
DEVMODEA modeInfo;
int modeNum = -1;
while (EnumDisplaySettingsExA(0, ++modeNum, &modeInfo, 0)) {
if (modeInfo.dmBitsPerPel < 16) continue;
modes.push_back( modeInfo );
}
Run Code Online (Sandbox Code Playgroud)
问题是,我正在进行平移模式!我无法分辨哪个是哪个; 例如我的ATI笔记本电脑的最大正常模式为1280x800,但也包含1024x600的平移模式!
任何人都知道区分2的方法,所以我可以拒绝菜单中的平移模式吗?
c++ windows screen-resolution resolution-independence panning
使用XNA,我正在尝试创建一个冒险游戏引擎,让你制作看起来像90年代初期的游戏,比如触手之日和Sam&Max Hit the Road.因此,我希望游戏实际上以320x240运行(我知道,它应该是320x200,但是嘘),但它应该根据用户设置进行扩展.
它的工作原理样的好现在,但我遇到了一些问题,我其实希望它看起来更加像素化,它目前不会.
这就是我现在正在做的事情:
在游戏初始化中:
public Game() {
graphics = new GraphicsDeviceManager(this);
graphics.PreferredBackBufferWidth = 640;
graphics.PreferredBackBufferHeight = 480;
graphics.PreferMultiSampling = false;
Scale = graphics.PreferredBackBufferWidth / 320;
}
Run Code Online (Sandbox Code Playgroud)
Scale是一个公共静态变量,我可以随时检查以查看相对于320x240我应该扩展多少游戏.
在我的绘图功能:
spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.NonPremultiplied, SamplerState.PointClamp, DepthStencilState.Default, RasterizerState.CullNone, null, Matrix.CreateScale(Game.Scale));
Run Code Online (Sandbox Code Playgroud)
这样,一切都以320x240绘制并且被炸毁以适应当前分辨率(默认为640x480).当然,我做数学将鼠标的实际坐标转换为320x240坐标,依此类推.
现在,这是伟大的,但现在我已经到了我想要开始缩放我的精灵,让他们走到远处等等的地步.
看下面的图片.左上角的图像是游戏以640x480运行时的截图.它右边的图像是"应该"看的样子,在320x240.最下面的一排图像只是吹到300%的顶行(在Photoshop中,不在引擎中),所以你可以看到我在说什么.
在640x480图像中,您可以看到不同的"线条粗细"; 较粗的线是它应该看起来的样子(一个像素= 2x2,因为它运行在640x480),但是由于缩放,较细的线条(1x1像素)也会出现,当它们不应该时(参见右边的图像) ).
基本上我试图模拟一个320x240的显示器,但是使用XNA会升级到任何分辨率,并且矩阵变换不能解决问题.我有什么办法可以做到这一点吗?
我正在开发一个需要独立于分辨率的应用程序.应用程序将始终全屏,因此我必须设计我的UI,以便监视器分辨率不会影响应用程序的使用.我花了很多时间玩WPF试图完成这个.今天我发现了Viewbox.它似乎解决了我所有的问题.我所要做的就是放置用于在Viewboxes中布局每个屏幕的网格,就像魔法我有一个独立于分辨率的应用程序.
但是,这似乎很容易.感觉不对劲.我应该使用Viewboxes吗?如果不是我应该做什么呢?在我发现Viewbox之前,我很难想出一种在分辨率方面扩展字体大小的方法.使用Viewbox,我不必担心这一点.因此,如果使用Viewbox是错误的,我该如何调整文本大小?
我已经在互联网上阅读了我不应该用绝对像素高度/宽度/大小来定义字体(或任何东西),而是使用EM ......这样在更高分辨率的显示器上,我的网站可以适当地缩放.
但是,我用什么来定义IMAGE高度/宽度...因为图像不能很好地缩放(它们看起来像素化)
更新:
为了澄清,我不是指页面缩放.我指的是如何使我的Web应用程序分辨率独立,以便在更高的DPI显示上看起来正确.
我怎么能开发独立的分辨率和监视大小独立的wpf应用程序.监视器大小独立意味着这里假设我在15英寸显示器中开发wpf应用程序,当我在17英寸显示器中查看应用程序时,然后通常UI看起来不同,所以我怎么能摆脱WPF中的这个问题.请详细说明.谢谢
有没有简单的方法可以在任何不同的PC上运行在Visual Studio 2005上用C#创建的应用程序,无论其屏幕分辨率如何?
使用VB6
我的默认软件显示设置为"800 x 600"
客户端具有不同的显示设置,如"800 x 600","1366 x 768","1280 x 768"
使用超过"800 x 600"显示设置的软件的客户端软件未配备全屏.软件显示75%的显示器尺寸宽度.
当我根据显示器手动调整软件大小时,图像显示非常大.
如何根据显示器的显示尺寸全屏显示软件.
需要代码帮助