精华内容
下载资源
问答
  • 原来跟我的电脑设置缩放比列有关系。 解决方案 1、获取【桌面的实际宽度】; 2、获取【显示的屏幕宽度】; 3、计算出缩放比列; 4、用缩放比列计算出实际的鼠标位置; 代码示例,获取鼠标...

    问题描述 

    C#获取屏幕尺寸与位置与实际屏幕尺寸位置不一致
    使用System.Windows.Forms.Screen.PrimaryScreen.Bounds获取的边界是 1536*864
    而使用微信截图获取的屏幕大小是 1920*1080;
    使用System.Windows.Forms.Cursor.Position和System.Windows.Forms.Control. MousePosition
    以及user32.dll的GetCursorPos获取的点的颜色与实际位置的颜色也有偏差。
    
    
            public void ScreenInfo()
            {
                //光标位置
                Point CursorPos = System.Windows.Forms.Cursor.Position;
                //鼠标光标的位置
                Point MousePositionX =System.Windows.Forms.Control. MousePosition;
                //整个屏幕的大小
                Rectangle ScreenBounds = System.Windows.Forms.Screen.GetBounds(this);
                Rectangle ScreenPrimaryScreenBounds = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
                //屏幕除任务栏以外的工作区域大小
                Rectangle ScreenWorkingArea = System.Windows.Forms.Screen.GetWorkingArea(this);
                Rectangle ScreenPrimaryScreenWorkingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
                Rectangle VirtualScreen = System.Windows.Forms.SystemInformation.WorkingArea;
            }

    分析原因

    原来跟我的电脑设置了缩放比列有关系。

    解决方案

    1、获取【桌面的实际宽度】;

    2、获取【显示的屏幕宽度】;

    3、计算出缩放比列;

    4、用缩放比列计算出实际的鼠标位置;

    代码示例,获取鼠标位置得RGB值,如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Drawing;
    using System.Runtime.InteropServices;
    
    namespace SMQH
    {
        class Win32Helper
        {
            /// <summary>
            /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,
            /// 以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。
            /// </summary>
            /// <param name="hWnd">设备上下文环境被检索的窗口的句柄,如果该值为NULL,GetDC则检索整个屏幕的设备上下文环境。</param>
            /// <returns>如果成功,返回指定窗口客户区的设备上下文环境;如果失败,返回值为Null。</returns>
            [DllImport("user32")]
            public static extern IntPtr GetDC(IntPtr hWnd);
            /// <summary>
            /// 该函数释放设备上下文环境(DC)供其他应用程序使用。函数的效果与设备上下文环境类型有关。
            /// 它只释放公用的和设备上下文环境,对于类或私有的则无效。
            /// </summary>
            /// <param name="hWnd">指向要释放的设备上下文环境所在的窗口的句柄。</param>
            /// <param name="hDC">指向要释放的设备上下文环境的句柄。</param>
            /// <returns>如果释放成功,则返回值为1;如果没有释放成功,则返回值为0。</returns>
            [DllImport("user32")]
            public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
            [DllImport("user32")]
            public static extern bool GetCursorPos(out System.Drawing.Point pt);
            /// <summary>
            /// 该函数检索指定坐标点的像素的RGB颜色值。
            /// </summary>
            /// <param name="hDC">设备环境句柄。</param>
            /// <param name="nXPos">指定要检查的像素点的逻辑X轴坐标。</param>
            /// <param name="nYPos">指定要检查的像素点的逻辑Y轴坐标。</param>
            /// <returns>返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;那么返回值是CLR_INVALID。</returns>
            [DllImport("gdi32")]
            public static extern uint GetPixel(IntPtr hDC, int nXPos, int nYPos);
            [DllImport("gdi32")]
            static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
    
            public const int HORZRES = 8;
            public const int VERTRES = 10;
            public const int DESKTOPVERTRES = 117;
            public const int DESKTOPHORZRES = 118;
            /// <summary>
            /// 获取当前鼠标位置颜色
            /// </summary>
            /// <returns></returns>
            public static System.Drawing.Color GetPixelColor()
            {
                Point pnt = new Point(0, 0);
                IntPtr hdc = GetDC(IntPtr.Zero);
                GetCursorPos(out pnt);
    
                float ScaleX = (float)GetDeviceCaps(hdc, DESKTOPHORZRES) / (float)GetDeviceCaps(hdc, HORZRES);
                float ScaleY = (float)GetDeviceCaps(hdc, DESKTOPVERTRES) / (float)GetDeviceCaps(hdc, VERTRES);
                uint pixel = GetPixel(hdc, (int)(pnt.X * ScaleX), (int)(pnt.Y * ScaleY));
                ReleaseDC(IntPtr.Zero, hdc);
                Color color = Color.FromArgb((int)(pixel & 0x000000FF),
                (int)(pixel & 0x0000FF00) >> 8,
                (int)(pixel & 0x00FF0000) >> 16);
                return color;
            }
        }
    }
    

     

    展开全文
  • 现在很多笔记本电脑都推荐将缩放设置为125%,等比例放大显示。(垃圾Windows 这对我们前端的页面的布局会产生一些影响 首先,单独的响应式布局hold不住这个问题,因为出问题的是device-pixel-ratio。 问题现象是...

    现在很多笔记本电脑都推荐将缩放设置为125%,等比例放大显示。(垃圾Windows
    3163780373-5bd7b24150eec_articlex.png

    这对我们前端的页面的布局会产生一些影响

    1. 首先,单独的响应式布局hold不住这个问题,因为出问题的是device-pixel-ratio

    2. 问题现象是高分屏下整好的东西,在普分屏下会放大;而普分屏下整好的东西,在高分屏上会缩小。

    3. 重现这个问题不需要高分屏,直接用Ctrl++或者Ctrl+-出来的效果是跟高分屏一致的(所以搞定这个问题之后,也可以同时预防用户误触网页缩放)。另外恢复是Ctrl+Num0

    4. 解决的关键就是你得在媒体适配里写device-pixel-ratio单独适配像素比;另外,需要把绝大多数组件由px单位转换为rem单位,因为需要在前边提到的device-pixel-ratio里调节:rootfont-size`,以达到动态缩放的目的
      (加上兼容)写好以后的代码类似:

    @media all
    and (-moz-min-device-pixel-ratio: 1.09) and (-moz-max-device-pixel-ratio: 1.18),
        (-webkit-min-device-pixel-ratio: 1.09) and (-webkit-max-device-pixel-ratio: 1.18),
        (min-resolution: 1.09dppx) and (max-resolution: 1.18dppx) {
        :root {
            font-size: 14px;
        }
    }
    @media all
    and (-moz-min-device-pixel-ratio: 1.19) and (-moz-max-device-pixel-ratio: 1.28),
        (-webkit-min-device-pixel-ratio: 1.19) and (-webkit-max-device-pixel-ratio: 1.28),
        (min-resolution: 1.19dppx) and (max-resolution: 1.28dppx) {
        :root {
            font-size: 13px;
        }
    }
    @media all
    and (-moz-min-device-pixel-ratio: 1.29) and (-moz-max-device-pixel-ratio: 1.4),
        (-webkit-min-device-pixel-ratio: 1.29) and (-webkit-max-device-pixel-ratio: 1.4),
        (min-resolution: 1.29dppx) and (max-resolution: 1.4dppx) {
        :root {
            font-size: 12px;
        }
    }
    @media all
    and (-moz-min-device-pixel-ratio: 1.41) and (-moz-max-device-pixel-ratio: 1.6),
        (-webkit-min-device-pixel-ratio: 1.41) and (-webkit-max-device-pixel-ratio: 1.6),
        (min-resolution: 1.41dppx) and (max-resolution: 1.6dppx) {
        :root {
            font-size: 10px;
        }
    }
    @media all
    and (-moz-min-device-pixel-ratio: 1.61) and (-moz-max-device-pixel-ratio: 1.8),
        (-webkit-min-device-pixel-ratio: 1.61) and (-webkit-max-device-pixel-ratio: 1.8),
        (min-resolution: 1.61dppx) and (max-resolution: 1.8dppx) {
        :root {
            font-size: 9px;
        }
    }
    @media all
    and (-moz-min-device-pixel-ratio: 1.81) and (-moz-max-device-pixel-ratio: 2.1),
        (-webkit-min-device-pixel-ratio: 1.81) and (-webkit-max-device-pixel-ratio: 2.1),
        (min-resolution: 1.81dppx) and (max-resolution: 2.1dppx) {
        :root {
            font-size: 8px;
        }
    }
    

    本文首发自JoyNop’S BLOG https://www.joynop.com/p/352.html

    展开全文
  • 但为了看的清楚,系统显示设置里有一个“缩放与布局”,一般为125%或者150% 造成的问题:用Screen.PrimaryScreen.Bounds取得的屏幕分辨率宽度是1536的(1920 / 1.25=1536) 网上查过很多资料,多是用API的,测试也不...

    .Net 如何获取缩放之前屏幕真实分辨率(屏幕缩放比例)

    尤其对Win10笔记本而言,屏幕本身分辨率1920*1080;但为了看的清楚,系统显示设置里有一个“缩放与布局”,一般为125%或者150%

    造成的问题:用Screen.PrimaryScreen.Bounds取得的屏幕分辨率宽度是1536的(1920 / 1.25=1536)

    网上查过很多资料,多是用API的,测试也不成功。换个思路,建一个足够大的Bitmap,把屏幕CopyFromScreen填充到这个大图里,然后查一下从哪里开始屏幕Pixel的alpha=0了,这就是屏幕的真实分辨率1920

    Public Function GetRealScreenSize() As Size
            Dim W As Integer = Screen.PrimaryScreen.Bounds.Width
            Dim H As Integer = Screen.PrimaryScreen.Bounds.Height
    
            Dim Img As Image = New Bitmap(W * 3, H * 3)
            Dim G As Graphics
            G = Graphics.FromImage(Img)
            G.CopyFromScreen(New Point(0, 0), New Point(0, 0), Img.Size)
            G.Dispose()
            GC.Collect()
    
            For i = W To W * 3 - 1 Step 1
                Dim PointColor As Color = CType(Img, Bitmap).GetPixel(i, 0)
                If PointColor.A = 0 And PointColor.R = 0 And PointColor.G = 0 And PointColor.B = 0 Then
                    W = i
                    Exit For
                End If
            Next
    
            If W <> Screen.PrimaryScreen.Bounds.Width Then
                H = CInt(H * (W / Screen.PrimaryScreen.Bounds.Width))
            End If
            Return New Size(W, H)
    End Function
    展开全文
  • 如果有多个兴趣点(经纬度、坐标点)需要同时显示在地图上,如何设置缩放比例。如果缩放太细,那么一个屏幕放不下,如果缩放太粗,显示就太密集。需要在程序中根据点的分布来设置。 百度地图Android SDK v3.5.0从...

    如果有多个兴趣点(经纬度、坐标点)需要同时显示在地图上,如何设置缩放比例。如果缩放太细,那么一个屏幕放不下,如果缩放太粗,显示就太密集。需要在程序中根据点的分布来设置。

    百度地图Android SDK v3.5.0从3.5版本开始,它的缩放级别从3-20,总共18个级别,如下:

    {"10m", "20m", "50m", "100m", "200m", "500m", "1km", "2km", "5km", "10km", "20km", "25km", "50km", "100km", "200km", "500km", "1000km", "2000km"} 
    Level依次为:20191817161514131211109876543

    我们可以先计算出两个点之间的距离,从而判断设置其Level。

    因为我需要显示很多点,因此计算出了经纬度的范围,然后计算出最长的距离,这个距离就是在同一个屏幕上需要显示的长度。我比划了一下手机上的百度地图,宽度差不多是单位长度的8.5倍,简单起见就当成9倍。比如计算出来的最长的距离是10公里,那么单位长度应该是10/9=1.1公里左右,然后跟缩放比例对比一下,比1000m的缩放级别要广,下一个级别就是2000m。因此就设置2000m的level 13就可以了。

    伪代码:

                    //经度范围-180到180,纬度范围-90到90,对所有的轨迹中的经纬度进行比较,找到最大和最小的经度,最大和最小的维度
                    double minLongitude=180 ,maxLongitude=-180,minlatitude=90,maxlatitude=-90;
     
                        for(LatLng pos:坐标的list){
                            if(minlatitude > pos.latitude) minlatitude=pos.latitude;
                            if(maxlatitude < pos.latitude) maxlatitude = pos.latitude;
                            if(minLongitude > pos.longitude) minLongitude = pos.longitude;
                            if(maxLongitude < pos.longitude) maxLongitude = pos.longitude;
                        }
        
                    //对角线的距离,单位m
                    double maxdis=DistanceUtil.getDistance(new LatLng(minlatitude,minLongitude),new LatLng(maxlatitude,maxLongitude));
    
                    int [] zoomSize={10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 25000, 50000, 100000, 200000, 500000, 1000000, 2000000};
                    int [] zoomlevel={20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3};
                    //将轨迹显示在地图上,正好是标准尺的9倍。
                    double mapWidth = maxdis/9;
                   int dx=0;
                    //找到合适的单位距离,就是稍微大一点的那个单位
                    for(int i=0;i<zoomSize.length;i++){
                        if(mapWidth < zoomSize[i]) {
                            dx = i;
                            break;
                        }
                    }
    
                    MapStatus.Builder builder = new MapStatus.Builder();
                    //地图中心移动到轨迹中间的地方
                    builder.target(new LatLng((minlatitude+maxlatitude)/2,(minLongitude+maxLongitude)/2));
                    //设置缩放级别
                    builder.zoom(zoomlevel[dx]);
                    //刷新地图
                    mBaiduMap.setMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));

    思路参考http://blog.csdn.net/u013067184/article/details/48471199

    展开全文
  • 如何设置: 桌面空白处,鼠标右键选择显示设置 选择高级显示设置 选择外接显示屏——显示适配器属性 弹出的窗口选择监视器——屏幕刷新率75Hz——确定,外接显示屏黑屏一下,不需要重启就好了。 3、还有就是调...
  • 安装了浏览器后,有时候打开后会看到界面与屏幕不匹配,类似下图所示,图中红色圆圈所标注的是空白部分,这个原因是由于实际显示字体较小,通过Ctrl+鼠标滚轮可以进行放大,但是打开新的界面后,仍然会变小,所以...
  • https://jingyan.baidu.com/article/5bbb5a1b3d3c1413eba179fd.html大家都知道在PS中视图菜单下面有个打印尺寸,也就是缩放工具中的打印尺寸显示(还有100%、200%和按屏幕大小缩放),按说这个显示比例应该和我们...
  • 在横阅读pdf时,将pdf纵向的缩小显示了整个pdf。但是现在要的效果就是横的时候让pdf的宽达到...可以两根手指放大之类的效果,请问有哪位大神用过这个pdf,如何设置初始时候的画面大小啊,求大神解答,在线等!!!
  • Mac缩放可以在屏幕上显示不同的缩放样式和外观,我们可以根据自己的需要,设置自己喜欢的样式和外观!今天小编给大家带来了具体的设置方法,需要的朋友欢迎参考操作! 如何更改缩放样式 1.从Dock或“应用程序”...
  • 如今,手机的快速发展使得越来越多的人开始使用手机上网,那么就会出现一个问题,如何才能让PC端的网页在手机上正常显示?让元素能够自动适应不同的屏幕大小呢?css如何让元素宽度自适应屏幕大小1、在网页代码的头部...
  • <div style="width: 100vw;height:100vh;"> 在 最外层div 像上面写即可 1.em 在做手机端的时候经常会用到的做字体的尺寸单位 ...但是当div进行嵌套的时候,em始终是按照当前div继承的字体大小来缩放,参照后...
  • Axure share如何自适应手机屏幕

    千次阅读 2019-07-19 13:15:43
    前提:如果不修改默认设置,会发现在手机上用Axure share打开只能看到很小的...最大最小缩放倍数自己看着写吧,0.5到3.0足够了,最主要记得把“初始缩放倍数”值给去掉,再重新发布到AxShare就可以全屏显示了。 ...
  • Windows10的UWP应用显示效果还过得去,但传统的EXE软件显示就一塌糊涂了。下面分享一下我是如何解决大部分传统软件的字体模糊问题的。一、打开设置中的“允许Windows尝试修复应用,使其不模糊”。这个开关的路径是:...
  • 为了提高托动的缩放的效率,减少系统开销,一般软件都用支持只显示窗体四周的虚线的方法,这也是windows默认的设置 首先看下其它软件的窗体托动,先说QQ2009吧,QQ2009的主窗体在托动时如果在屏幕上来回快速托动,...
  • 在可缩放的树图中显示linux源代码信息 如何运行应用程序 该目录包含用于在您自己的计算机上查看树图的文件。 此版本的应用程序设置为在端口8000上的本地主机上运行。 要启动本地服务器,请从web_interface目录运行...
  • 最近在项目研发过程中有一个预览大图的...把ScaleType属性改为center又不能缩放了,这如何是好呢?其实,我们可以在用户Touch屏幕前通过代码来动态更改属性就可以了,即在onTouch(Viewv,MotionEventevent)方法中执行...
  • 强制初始视图:加载新场景后,无论令牌的位置如何,视图均被强制为初始视图(在场景配置菜单中设置) 视图框:允许GM查看播放器屏幕上显示的内容,并允许GM控制这些播放器的平移和缩放 可以为每个场景分别设置...
  • 设置并不复杂,因为我选择了CSS3方法,并为旧的IE版本提供了回退.这是CSS:html {/* Fullscreen backgroung image per CSS3 with 'background-size: cover' */background: url(../images/background.jpg) no-repeat ...
  • 只需要去设置里的显示,修改缩放率的比例就可以调整了
  • 翻页页码PageNumberType显示分两种状态,pageControl格式和页码“n/m”格式 ,需要调用的时候自己设置PageNumberTypeControl或者PageNumberTypeCode。 保存到本地 二、演示 1. pageControl格式 及 基础演示 2. 页码...
  • imageview中图片如何全屏控制

    千次阅读 2014-04-29 16:11:12
    ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。 设置的方式包括: 1. 在layout xml中定义android:scaleType="CENTER" 2. 或在代码中调用...
  • 设置并不复杂,因为我选择了CSS3方法,并为旧的IE版本提供了回退.这是CSS:html {/* Fullscreen backgroung image per CSS3 with 'background-size: cover' */background: url(../images/background.jpg) no-repeat ...
  • 网上说了一大堆,说什么设置div的宽度,特别是这篇: http://www.divcss5.com/wenji/w632.shtml 害死人,我们为什么要自动缩放?还不是手机屏幕太多分辨率了?你指定了宽度还怎么缩放?你妹的。 经过我的多次...
  • 网上说了一大堆,说什么设置p的宽度害死人,我们为什么要自动缩放?还不是手机屏幕太多分辨率了?你指定了宽度还怎么缩放?你妹的。经过我的多次实验,发现一个比较好的方法, 在ios微信/浏览器和android微信/浏览器...
  • 缩放设置保存在ASR中,可以进行多种配置。 示例:在LFFF_CTR上工作时,飞机需要拦截LFPG ILS 09L,因此您需要放大LFPG,然后将显示中心线,然后进行缩放并返回航路视图。 如何使用它 将插件加载到EuroScope中,并...
  • 我们在做项目的时候,往往会有想要获取屏幕的分辨率...而且该函数获得的结果会受屏幕缩放影响,比如原分变率为19201080,且在显示设置设置了125%的缩放的话,得到的结果为1536864。如果缩放为100%的话,结果为1920*1

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 292
精华内容 116
关键字:

如何设置显示屏缩放