Console.WindowLeft Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define a posição mais à esquerda da área da janela da consola em relação ao buffer do ecrã.
public:
static property int WindowLeft { int get(); void set(int value); };
public static int WindowLeft { get; set; }
static member WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer
Valor de Propriedade
A posição da janela do console mais à esquerda era medida em colunas.
Exceções
Numa operação de conjunto, o valor a ser atribuído é menor que zero.
-ou-
Como resultado da atribuição, WindowLeft mais WindowWidth excederia BufferWidth.
Erro de leitura ou escrita de informação.
A operação de set é invocada num sistema operativo diferente do Windows.
Exemplos
O exemplo seguinte abre uma janela de consola de 80 colunas e define uma área de buffer com 120 colunas de largura. Apresenta informações sobre o tamanho da janela e do buffer, e depois espera que o utilizador pressione a tecla SETA ESQUERDA ou a SETA DIREITA. No primeiro caso, diminui o valor da WindowLeft propriedade em um se o resultado for um valor legal. Neste último caso, aumenta o valor da WindowLeft propriedade em um se o resultado for legal. Note-se que o exemplo não tem de tratar um ArgumentOutOfRangeException, porque verifica se o valor a atribuir à WindowLeft propriedade não é negativo e não faz com que a soma das WindowLeft propriedades e WindowWidth exceda o BufferWidth valor da propriedade.
using System;
public class Example
{
public static void Main()
{
ConsoleKeyInfo key;
bool moved = false;
Console.BufferWidth += 4;
Console.Clear();
ShowConsoleStatistics();
do
{
key = Console.ReadKey(true);
if (key.Key == ConsoleKey.LeftArrow)
{
int pos = Console.WindowLeft - 1;
if (pos >= 0 && pos + Console.WindowWidth <= Console.BufferWidth)
{
Console.WindowLeft = pos;
moved = true;
}
}
else if (key.Key == ConsoleKey.RightArrow)
{
int pos = Console.WindowLeft + 1;
if (pos + Console.WindowWidth <= Console.BufferWidth)
{
Console.WindowLeft = pos;
moved = true;
}
}
if (moved)
{
ShowConsoleStatistics();
moved = false;
}
Console.WriteLine();
} while (true);
}
private static void ShowConsoleStatistics()
{
Console.WriteLine("Console statistics:");
Console.WriteLine(" Buffer: {0} x {1}", Console.BufferHeight, Console.BufferWidth);
Console.WriteLine(" Window: {0} x {1}", Console.WindowHeight, Console.WindowWidth);
Console.WriteLine(" Window starts at {0}.", Console.WindowLeft);
Console.WriteLine("Press <- or -> to move window, Ctrl+C to exit.");
}
}
open System
let showConsoleStatistics () =
printfn "Console statistics:"
printfn $" Buffer: {Console.BufferHeight} x {Console.BufferWidth}"
printfn $" Window: {Console.WindowHeight} x {Console.WindowWidth}"
printfn $" Window starts at {Console.WindowLeft}."
printfn "Press <- or -> to move window, Ctrl+C to exit."
Console.BufferWidth <- Console.BufferWidth + 4
Console.Clear()
showConsoleStatistics ()
let mutable moved = false
while true do
let key = Console.ReadKey true
if key.Key = ConsoleKey.LeftArrow then
let pos = Console.WindowLeft - 1
if pos >= 0 && pos + Console.WindowWidth <= Console.BufferWidth then
Console.WindowLeft <- pos
moved <- true
elif key.Key = ConsoleKey.RightArrow then
let pos = Console.WindowLeft + 1
if pos + Console.WindowWidth <= Console.BufferWidth then
Console.WindowLeft <- pos
moved <- true
if moved then
showConsoleStatistics ()
moved <- false
printfn ""
Module Example
Public Sub Main()
Dim key As ConsoleKeyInfo
Dim moved As Boolean = False
Console.BufferWidth = 120
Console.Clear()
ShowConsoleStatistics()
Do While True
key = Console.ReadKey(True)
If key.Key = ConsoleKey.LeftArrow Then
Dim pos As Integer = Console.WindowLeft - 1
If pos >= 0 And pos + Console.WindowWidth <= Console.BufferWidth Then
Console.WindowLeft = pos
moved = True
End If
ElseIf key.Key = ConsoleKey.RightArrow Then
Dim pos As Integer = Console.WindowLeft + 1
If pos + Console.WindowWidth <= Console.BufferWidth Then
Console.WindowLeft = pos
moved = True
End If
End If
If moved Then ShowConsoleStatistics() : moved = False
Console.WriteLine()
Loop
End Sub
Private Sub ShowConsoleStatistics()
Console.WriteLine("Console statistics:")
Console.WriteLine(" Buffer: {0} x {1}", Console.BufferHeight, Console.BufferWidth)
Console.WriteLine(" Window: {0} x {1}", Console.WindowHeight, Console.WindowWidth)
Console.WriteLine(" Window starts at {0}.", Console.WindowLeft)
Console.WriteLine("Press <- or -> to move window, Ctrl+C to exit.")
End Sub
End Module
Observações
A consola representa uma janela retangular para uma área de tampão retangular maior. Tanto a janela como o buffer são medidos verticalmente pelo número de linhas e horizontalmente pelo número de colunas. As dimensões da área tampão são definidas pelas BufferHeight propriedades e BufferWidth . As dimensões da área da consola são definidas pelas WindowHeight propriedades e WindowWidth . A WindowLeft propriedade determina qual a coluna da área do buffer que é exibida na primeira coluna da janela da consola. O valor da WindowLeft propriedade pode variar de 0 a - BufferWidthWindowWidth . Tentar defini-lo para um valor fora desse intervalo lança um ArgumentOutOfRangeException.
Quando uma janela de consola se abre pela primeira vez, o valor padrão da WindowLeft propriedade é zero, o que indica que a primeira coluna mostrada pela consola corresponde à primeira coluna (a coluna na posição zero) na área de buffer. A largura padrão tanto da janela da consola como da área do buffer é de 80 colunas. Isto significa que a WindowLeft propriedade só pode ser modificada se a janela da consola for mais estreita ou se a área do buffer for alargada.
Note que, se a largura da área do buffer exceder a largura da janela do console, o valor da WindowLeft propriedade é automaticamente ajustado quando o utilizador usa a barra de scroll horizontal para definir a relação da janela com a área do buffer.
Tentar definir o valor da WindowLeft propriedade quando a saída é redirecionada gera uma IOException exceção. Para evitar a exceção, só pode definir o valor desta propriedade se a IsOutputRedirected propriedade devolver false.