Console.WindowLeft Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví pozici úplně vlevo oblasti okna konzoly vzhledem k vyrovnávací paměti obrazovky.
public:
static property int WindowLeft { int get(); void set(int value); };
public static int WindowLeft { get; [System.Runtime.Versioning.SupportedOSPlatform("windows")] set; }
public static int WindowLeft { get; set; }
[<set: System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member WindowLeft : int with get, set
static member WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer
Hodnota vlastnosti
Pozice levého okna konzoly měřená ve sloupcích.
- Atributy
Výjimky
V operaci sady je hodnota, která se má přiřadit, menší než nula.
nebo
V důsledku přiřazení WindowLeft by plus WindowWidth překročil BufferWidth.
Při čtení nebo zápisu informací došlo k chybě.
Operace set je vyvolána v jiném operačním systému než Windows.
Příklady
Následující příklad otevře okno konzoly s 80 sloupci a definuje oblast vyrovnávací paměti, která je širokých 120 sloupců. Zobrazí informace o velikosti okna a vyrovnávací paměti a potom počká, až uživatel stiskne klávesu ŠIPKA VLEVO nebo ŠIPKA VPRAVO. V prvním případě se hodnota vlastnosti sníží WindowLeft o jednu, pokud je výsledkem právní hodnota. V druhém případě zvýší hodnotu WindowLeft vlastnosti o jednu, pokud by výsledek byl právní. Všimněte si, že příklad nemusí zpracovat ArgumentOutOfRangeException, protože kontroluje, že hodnota, která má být přiřazena k WindowLeft vlastnosti není záporná a nezpůsobuje součet WindowLeft a WindowWidth vlastnosti překročení BufferWidth hodnoty vlastnosti.
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
Poznámky
Konzola představuje obdélníkové okno do větší obdélníkové oblasti vyrovnávací paměti. Okno i vyrovnávací paměť se měří svisle podle počtu řádků a vodorovně podle počtu sloupců. Rozměry oblasti vyrovnávací paměti jsou definovány vlastnostmi BufferHeight a BufferWidth vlastnostmi. Rozměry oblasti konzoly jsou definovány vlastnostmi WindowHeight a WindowWidth vlastnostmi. Vlastnost WindowLeft určuje, který sloupec oblasti vyrovnávací paměti se zobrazí v prvním sloupci okna konzoly. Hodnota vlastnosti může být v rozsahu WindowLeft od 0 do - BufferWidthWindowWidth . Pokus o nastavení na hodnotu mimo tento rozsah vyvolá výjimku ArgumentOutOfRangeException.
Když se poprvé otevře okno konzoly, výchozí hodnota WindowLeft vlastnosti je nula, což značí, že první sloupec zobrazený konzolou odpovídá prvnímu sloupci (sloupec na pozici nula) v oblasti vyrovnávací paměti. Výchozí šířka okna konzoly i oblasti vyrovnávací paměti je 80 sloupců. To znamená, že vlastnost lze upravit pouze v případě, že WindowLeft okno konzoly je zúženo nebo je oblast vyrovnávací paměti širší.
Všimněte si, že pokud šířka oblasti vyrovnávací paměti překročí šířku okna konzoly, hodnota WindowLeft vlastnosti se automaticky upraví, když uživatel použije vodorovný posuvník k definování vztahu okna k oblasti vyrovnávací paměti.
Při pokusu WindowLeft o nastavení hodnoty vlastnosti při přesměrování výstupu dojde k výjimce IOException . Chcete-li zabránit výjimce, můžete nastavit hodnotu této vlastnosti pouze v případě, že IsOutputRedirected vlastnost vrátí false.