.net - tamaño - ¿Cómo puedo detectar si la fuente del usuario(DPI) está configurada como pequeña, grande o alguna otra cosa?
manual de programacion android pdf (2)
Necesito averiguar si la pantalla del usuario está configurada en 96 ppp normales (tamaño pequeño), fuentes grandes de 120 ppp u otra cosa. ¿Cómo hago eso en VB.NET (preferido) o C #?
La mejor manera es simplemente permitir que el formulario se redimensione automáticamente, en función de la configuración de DPI actual del usuario. Para hacerlo, simplemente configure la propiedad AutoScaleMode.Dpi
en AutoScaleMode.Dpi
y habilite la propiedad AutoSize
. Puede hacer esto desde la Ventana de Propiedades en el diseñador o mediante el código:
Public Sub New()
InitializeComponent()
Me.AutoScaleMode = AutoScaleMode.Dpi
Me.AutoSize = True
End Sub
O bien, si necesita conocer esta información mientras dibuja (como en el método del controlador de eventos Paint
), puede extraer la información de las propiedades DpiX
y DpiY
de la instancia de la clase Graphics
.
Private Sub myControl_Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
Dim dpiX As Single = e.Graphics.DpiX
Dim dpiY As Single = e.Graphics.DpiY
'' Do your drawing here
'' ...
End Sub
Finalmente, si necesita determinar el nivel de DPI sobre la marcha, tendrá que crear una instancia temporal de la clase Graphics
para su formulario y verificar las propiedades DpiX
y DpiY
, como se muestra arriba. El método CreateGraphics
de la clase de formulario hace que esto sea muy fácil de hacer; solo asegúrese de ajustar la creación de este objeto en una instrucción Using
para evitar pérdidas de memoria. Código de muestra:
Dim dpiX As Single
Dim dpiY As Single
Using g As Graphics = myForm.CreateGraphics()
dpiX = g.DpiX
dpiY = g.DpiY
End Using