Automação da Interface do Usuário e Escala da Tela
Permite que os usuários alterar o Configuração assim que a maioria elementos na tela aparecem maiores.Embora esse recurso longo foi disponibilizado no. Nas versões anteriores a escala tinha que ser implementado por aplicativos.Em o Gerenciador de Janelas da Área de Trabalho executa a escala para todos os aplicativos que não manipular sua própria escala padrão.Cliente de Automação interface do usuário Aplicativos devem levar em conta esse recurso.
Este tópico contém as seguintes seções.
- Escala no Windows Vista
- Escala em clientes de automação de interface do usuário
- Tópicos relacionados
Escala no Windows Vista
O padrão a configuração é 96, o que significa que 96 pixels ocupam uma largura ou altura de uma polegada notional.A medida exata de uma polegada depende do tamanho e da resolução física do monitor.Por exemplo, em um monitor de 12 polegadas de largura, com uma resolução horizontal de 1280 pixels, uma linha horizontal de 96 pixels se estende por cerca de 9/10 de uma polegada.
C Deslocamento o configuração é Não a mesma como alterar a resolução de tela.With escala, o número de pixels físicas na tela permanece o mesmo.No entanto, a escala é aplicada ao tamanho e local do Os elementos.Esta escala pode ser executada automaticamente pela Gerenciador de Janelas da Área de Trabalho (DWM) para a área de trabalho e para os aplicativos que não solicitam explicitamente não sofrer escala.
Na verdade, quando o usuário define o fator de escala para 120 Um vertical ou horizontal polegada na tela se torna maior em 25 por cento.Todas as dimensões sofrem escala apropriadamente.O deslocamento de uma janela de aplicativo a partir da margem superior esquerda da tela aumenta 25 por cento.Se aplicativo Escala estiver ativada e o aplicativo é não. Ciente, o tamanho da janela aumenta na mesma proporção, juntamente com os deslocamentos e tamanhos de todos Elementos que ele contém.
Observação: |
---|
Por padrão, o DWM não realiza a escala de não -cientes aplicativos quando o usuário define o Para 120, mas executá-lo quando o é definido como um valor personalizado de 144 ou superior.No entanto, o usuário pode sobrescrever o comportamento padrão. |
O redimensionamento de tela cria novos desafios para aplicativos que lidam de alguma maneira com coordenadas de tela.A tela contém agora dois sistemas de coordenadas: o físico e o lógico.As coordenadas físicas de um ponto são o deslocamento real em pixels do canto superior esquerdo da origem.As coordenadas lógicas são os deslocamentos como eles seriam se os próprios pixels fossem redimensionados.
Suponha que você crie uma caixa de diálogo com um botão nas coordenadas (100, 48).Quando este caixa de diálogo é exibida no padrão 96 o botão está localizado em coordenadas físicas de (100, 48).Em 120 Ele está localizado nas coordenadas físicas de (125, 60).As coordenadas lógicas, mas a mesma em qualquer Configurando: (100, 48).
Coordenadas lógicas são importantes, porque elas fazem o comportamento do sistema operacional e aplicativos consistente independentemente de Configuração.Por exemplo, Cursor.Position Normalmente Retorna as coordenadas lógicas.Se você mover o cursor sobre um elemento em um caixa de diálogo, as mesmas coordenadas são retornadas independentemente das Configuração.Se você desenhar um controle em (100, 100), ele é desenhado para essas coordenadas lógicas e ocupará a mesma posição relativa em qualquer Configuração.
Escala em clientes de automação de interface do usuário
O Não Usa coordenadas lógicas.Os seguintes métodos e propriedades retornam coordenadas físicas ou as recebem como parâmetros.
Por padrão, um Cliente de Automação interface do usuário Aplicativo executado em um modo não-96- Ambiente poderá não ser obtenha resultados corretos esses métodos e propriedades.Por exemplo, como a posição do cursor está no lógicas coordenadas, o cliente não é possível simplesmente passar essas coordenadas para FromPoint Para obter o elemento que está sob o cursor.Além disso, o aplicativo não poderá posicionar corretamente janelas fora de sua área cliente.
A solução tem duas partes.
Primeiro, verifique a aplicativo cliente Ciente.Para fazer isso, chame o Win32 Função SetProcessDPIAware Durante a inicialização.Em código gerenciado, a seguinte declaração disponibiliza essa função.
Esta função torna o processo inteiro Ciente, o que significa que todas as janelas que pertencem ao processo são fora de escala.Na Exemplo de marca-textoPor exemplo, as quatro janelas que compõem o retângulo de realce estão localizadas em coordenadas físicas obtidas Não as coordenadas lógicas.Se não fosse a amostra. Ciente, o realce poderia ser desenhado nas coordenadas lógicas na área de trabalho, que poderia resultar na colocação incorreta em um modo não-96- Ambiente.
Para obter coordenadas do cursor, chame o Win32 Função GetPhysicalCursorPos.O exemplo a seguir mostra como declarar e usar essa função.
CursorPoint { X; Y; } [System.Runtime.InteropServices.DllImport()] GetPhysicalCursorPos( CursorPoint lpPoint); ShowUsage() { CursorPoint cursorPos = CursorPoint(); { GetPhysicalCursorPos( cursorPos); } (EntryPointNotFoundException) { ; } }
CursorPoint X Y <System.Runtime.InteropServices.DllImport()> _ GetPhysicalCursorPos( lpPoint CursorPoint) ShowUsage() cursorPos CursorPoint() GetPhysicalCursorPos(cursorPos) e EntryPointNotFoundException ' Not Windows Vista
Cuidado: |
---|
Não use Cursor.Position.O comportamento da propriedade fora das janelas cliente em um ambiente em escala é indefinido. |
Se o aplicativo executa a comunicação direta entre processos com não - cientes aplicativos, talvez seja necessário converter entre coordenadas lógica e física usando o Win32 Funções PhysicalToLogicalPoint e LogicalToPhysicalPoint.