J'ai une méthode statique que je veux utiliser pour changer le Console.BackgroundColor si elle est en cours d'exécution dans l'environnement de test. Lorsque je casse sur la ligne après que la couleur est modifiée, elle est toujours définie sur Noir.Console couleur de fond couleur Non Changement
public static void LogError(string err)
{
if (IsRunningFromMspec)
{
Console.BackgroundColor = ConsoleColor.DarkRed;
Console.WriteLine(" &&&" + err);
}
else if (MyTracer.MyLevelSwitch.TraceError && !string.IsNullOrEmpty(err))
{
Trace.TraceError(" &&& - " + err);
}
}
Peindre l'arrière-plan entier, 'execute Console.Clear();' après avoir défini la couleur d'arrière-plan. –
@IanH. ah bon, gentil, oublié à ce sujet (je pense que je me souviens je le savais une fois). Merci, je vais l'ajouter pour l'exhaustivité. –
Les API Windows pour appeler sont [ 'GetConsoleScreenBufferInfo'] (https://msdn.microsoft.com/en-us/library/ms683171) pour obtenir le courant' srWindow', pour le début de coordonnées et le nombre de cellules de caractères à lire via [ 'ReadConsoleOutputAttribute'] (https://msdn.microsoft.com/en-us/library/ms684968). Modifier la couleur d'arrière-plan pour chaque cellule, et écrivent les données d'attribut de retour via [ 'WriteConsoleOutputAttribute'] (https://msdn.microsoft.com/en-us/library/ms687407). – eryksun