Terminal: Feature Request: Standard-Opazität-Optionen wie die traditionelle Konsole.

Erstellt am 9. Mai 2019  ·  63Kommentare  ·  Quelle: microsoft/terminal

Vielleicht habe ich es beim Durchsuchen der Json-Datei übersehen, aber ich habe kein anderes Mittel gesehen, um Transparenz zu erzielen, und ich bin kein Fan des Unschärfefaktors von Acryleffekten oder der Tatsache, dass er sich ausschaltet, wenn das Fenster nicht ausgewählt ist. Die traditionelle Konsole sorgt wie in den meisten Nix-Umgebungen für eine statische Deckkraft. Ich hoffe, es ist nur eine Frage der Zeit, bis sie hier implementiert wird?

Area-User Interface Issue-Feature Product-Terminal

Hilfreichster Kommentar

@TCB13 Nur damit Sie es wissen, wir sind alle echte Leute hier, die in unseren Büros sitzen und sich unsere Posteingänge, unsere Triage-Warteschlange und die Liste der Github-Probleme ansehen. Wir lesen jede dieser Ausgaben und _fühlen Dinge_ über sie und die Dinge, die die Leute darin sagen. Bitte versuchen Sie zu vermeiden, gemein zu sein.

Alle 63 Kommentare

Es wird derzeit nicht unterstützt, aber es ist definitiv etwas, das wir nicht aus den Augen verlieren möchten. Wir müssen ein wenig schwere Arbeit leisten, um die visuellen Elemente der Komposition richtig einzurichten, aber es ist "im Plan".

Siehe auch #593 mit zusätzlichen Informationen.

Ich mag klassische Transparenz, habe aber nie Acryl verwendet, eines der Must-Have-Features für mich :)

+1 dazu!

Bitte keine "+1"-Probleme, es erzeugt unnötiges Rauschen. Hier gibt es eine absolut gute +1-Schaltfläche:
image

@zadjii-msft Bei Microsoft gibt es keine "perfekt gute +1-Schaltfläche", selbst wenn es Lärm macht, kümmert sich niemand wirklich darum oder hört auf etwas. Ich denke, jeder, der jemals ein Microsoft-Produkt verwendet hat, weiß dies.

Aber hey, ich verstehe den Punkt. Es tut uns leid.

@TCB13 Nur damit Sie es wissen, wir sind alle echte Leute hier, die in unseren Büros sitzen und sich unsere Posteingänge, unsere Triage-Warteschlange und die Liste der Github-Probleme ansehen. Wir lesen jede dieser Ausgaben und _fühlen Dinge_ über sie und die Dinge, die die Leute darin sagen. Bitte versuchen Sie zu vermeiden, gemein zu sein.

@DHowett-MSFT @zadjii-msft

Die Tatsache, dass Acryl anstelle von Deckkraft enthalten ist, bedeutet wirklich, dass niemand die Benutzerfreundlichkeit dieses Terminals wirklich berücksichtigt hat. Für mich sieht es so aus, als ob einige PM gerade gesagt haben: "Oh, transparente Dinge sehen cool aus, lass es uns noch cooler machen und es verwischen!". Terminal-Apps / -Fenster sind normalerweise nicht transparent, weil sie gut aussehen. Sie sind transparent, weil Sie andere Dinge hinter dem Fenster sehen können - eine nützliche Funktion, wie die meisten Benutzer zustimmen werden.

Vielleicht sollten Sie die anderen echten Leute in Ihrer Firma fragen, warum ich in meinem anderen Kommentar so aggressiv war. :)

@TCB13 Es gab Stimmen, die darum baten,

Das Problem mit dieser neuen Version besteht darin, dass Opacity mit den neuen Windowing-APIs, die diese verwendet, nicht sofort möglich ist und dass das Team sich dessen bewusst ist und versuchen wird, dies zu ermöglichen.

Es ist nicht nötig, so abweisend zu sein, nur weil es keine Funktion ist, die Sie persönlich wollen oder brauchen.

Dies wäre sehr nützlich.

Zusätzlich zu dem, was bereits gesagt wurde, wäre die Möglichkeit, das Fenster Acryl im fokussierten und transparenten, wenn nicht fokussierten Zustand zu haben, sehr schön, da dies den Übergang weniger erschüttern würde.

einverstanden. Ich persönlich möchte die normale Deckkrafteinstellung, da ich sehr dunkle Hintergründe mit leichter Transparenz mag. Als ich versuchte, die Acryloptionen zu verwenden, wurde der Hintergrund für meinen Geschmack zu hell. Ich bin wohl ein Vampir .

Schön zu hören, dass es zumindest geplant ist. Vielen Dank, dass Sie dieses Tool erstellt haben, und ich freue mich auf zukünftige Versionen mit mehr Funktionen wie dieser.

einverstanden. Ich persönlich denke, dass das Fenster plötzlich sofort einfarbig wird, wenn es den Fokus verliert. Traditionelle Transparenz ist ein besserer Übergang
Schön zu hören, dass es zumindest geplant ist. Vielen Dank, dass Sie dieses Tool erstellt haben, und ich freue mich auf zukünftige Versionen mit mehr Funktionen wie dieser.

Die Wahrheit ist, dass ich keine Konsole verwenden werde, wenn es keine klassische Transparenz gibt :), es ist ein Muss für mich :)

dies bezieht sich nicht auf dieses Problem, sondern auf eine Reihe von Beiträgen.


KLICK MICH

> Es ist nicht nötig, so abweisend zu sein, nur weil es keine Funktion ist, die Sie persönlich wollen oder brauchen. Wenn Leute mit den allgemeinen Erwartungen der Mehrheit der App-Benutzer weit weg zu sein scheinen, erhalten sie leidenschaftliche Reaktionen. und Transparenz ist seit langem verfügbar, daher drängt keine einzige Person die Entwickler, um einer einzigen Person zu gefallen. wie Ihre letzte Aussage aus irgendeinem Grund andeutet; Sie können es gerne bearbeiten. Vielleicht war TCB13 in einem anderen Thread oder einer anderen Gelegenheit unhöflich oder aggressiv? als meist harmlose Übertreibung in https://github.com/microsoft/terminal/issues/603#issuecomment-508031247 --- auch Silverqx, siehe https://github.com/microsoft/terminal/issues/603#issuecomment -546613996 https://github.com/microsoft/terminal/issues/603#issuecomment-507248317 und wie lange ist es seit https://github.com/microsoft/terminal/tags?after=RS2-final her erste öffentliche Veröffentlichung. Es scheint, es wird lange dauern. tun Sie es nicht zweimal, siehe https://github.com/microsoft/terminal/issues/603#issuecomment-507835880 --- von https://github.com/microsoft/terminal/issues/603#issuecomment-529696036 , iCodeSometime, kein Acryl bitte. Lassen Sie Acryl für diejenigen unsichtbar, die Transparenz verwenden möchten. Die Art und Weise, wie cmd damit umgeht, ist schön.


für cmd bevorzuge ich 80 bis 95 % Deckkraft, dh Transparenz. sie sind dasselbe.

Acryl ist lichtdurchlässig, denke ich. Ich muss es testen, da ich es auf allen Windows-Computern deaktiviere, die ich verwende.


grüße ratatoeey

Also fürs Protokoll, ich habe damit gespielt. Eine rudimentäre Implementierung ist nicht sehr knifflig, aber sie ist nicht ... ausgefeilt. Das gesamte Fenster wird ebenso transparent, einschließlich der XAML-Steuerelemente (Tabulatorzeile, Dialoge usw.). Ich denke, vom Standpunkt der Architektur aus wäre es außergewöhnlich schwierig zu versuchen, _nur_ den Inhalt des "Terminals" transparent zu machen, und selbst dann wären alle Fenster gleich transparent, einschließlich Trennzeichen, und Dialoge wären auch noch transparent.

image

Seltsamerweise wird das MenuFlyout für das neue Tab-Dropdown _nicht_ transparent, was weitere Fragen aufwirft.
image

Ehrlich gesagt, meiner Meinung nach fühlt sich die Erfahrung ein wenig ungeschliffen an. Wenn die Leute dies wirklich wollen, werde ich nicht nein sagen, aber ich möchte auch sicherstellen, dass wir etwas Hochwertiges liefern. Daher lasse ich es im Backlog, um zu versuchen, eine _bessere_ Lösung zu finden.

Eigentlich mag ich die Nicht-Client-Regionen transparent. So funktioniert cmd und hat seit einiger Zeit (vielleicht RS5?):

image

Ehrlich gesagt, meiner Meinung nach fühlt sich die Erfahrung ein wenig ungeschliffen an. Wenn die Leute dies wirklich wollen, werde ich nicht nein sagen, aber ich möchte auch sicherstellen, dass wir etwas Hochwertiges liefern. Daher lasse ich es im Backlog, um zu versuchen, eine _bessere_ Lösung zu finden.

Ich mag diesen Effekt sehr - die einzigen festen Fenster, die ich möchte, sind Dialoge und Dropdowns - jetzt muss ich das wohl nur noch aus dem Quellcode erstellen :-/

Danke für die Verlinkung mit der Modifikation!

Ja, ich denke auch, dass alles transparente ein Feature und kein Bug ist 😄

Die Art und Weise, wie cmd es macht, ist sehr nützlich, weil Sie lesen können, was darunter steht (natürlich hängt es von der Transparenz ab, ob es "gut" aussieht).

Ich würde dringend empfehlen, dass sich die Entwickler die Funktionalität von Gnome-Terminal in Bezug auf Transparenz als Leitfaden ansehen. Ich für meinen Teil habe keine Verwendung für Acryl und seine Unschärfe. Ich möchte, dass es transparent ist, damit ich es durchschauen kann, egal ob es fokussiert ist oder nicht. Vielen Dank.

Also fürs Protokoll, ich habe damit gespielt. Eine rudimentäre Implementierung ist nicht sehr knifflig, aber sie ist nicht ... ausgefeilt. Das gesamte Fenster wird ebenso transparent, einschließlich der XAML-Steuerelemente (Tabulatorzeile, Dialoge usw.). Ich denke, vom Standpunkt der Architektur aus wäre es außergewöhnlich schwierig zu versuchen, _nur_ den Inhalt des "Terminals" transparent zu machen, und selbst dann wären alle Fenster gleich transparent, einschließlich Trennzeichen, und Dialoge wären auch noch transparent.

Es ist in Ordnung, die Tab-Leiste transparent zu haben, das gesamte Fenster muss transparent sein, auch mit Scrollbars.
Viel besser wäre es, für Terminal-Inhalte etwas mehr Transparenz zu haben, als für Tab- und Statusleiste, zB etwa 10%, aber dies hat eine niedrigere Priorität und ist nicht wesentlich.
Modale Dialoge müssen undurchsichtig sein, niemand will transparente Dialoge haben. 🙂
Ideal wäre eine unterschiedliche Transparenz für Text und Hintergrund, der Text sollte etwas weniger transparent sein als der Hintergrund, um die Lesbarkeit zu erleichtern.

Das Wesentliche hier ist, dass es gut aussieht. 🚀

Seltsamerweise wird das MenuFlyout für das neue Tab-Dropdown _nicht_ transparent, was weitere Fragen aufwirft.

Das ist in Ordnung, diese Dropdown- oder Flyout-Menüs müssen nicht transparent sein, es ist viel besser, sie undurchsichtig zu haben.

Ehrlich gesagt, meiner Meinung nach fühlt sich die Erfahrung ein wenig ungeschliffen an. Wenn die Leute dies wirklich wollen, werde ich nicht nein sagen, aber ich möchte auch sicherstellen, dass wir etwas Hochwertiges liefern. Daher lasse ich es im Backlog, um zu versuchen, eine _bessere_ Lösung zu finden.

Man muss wenig damit spielen, lila Hintergrund ist kein gutes Beispiel für einen transparenten Hintergrund, mit schwarzem Hintergrund sieht es viel besser aus.
Einige Beispiele 1 , 2 .

Wenn Sie eine gute und ausgewogene Transparenz für ein Terminal einrichten, kann es Ihnen in einigen Szenarien helfen, in meinem Workflow hilft es mir in 5-10% Fällen, wenn ich nicht in das darunter liegende Fenster wechseln muss. Das ist aus praktischer Sicht gut und der Mehrwert liegt darin, dass es gut aussieht. 🙂

Hier ist ein Link zum Code, wie er in conemu implementiert ist.

@zadjii-msft Deine experimentelle Transparenz wäre für mich völlig in Ordnung, wenn sie wie in meinem Vorschlag implementiert würde
fokussiert - useAcrylic
unscharf - Transparenz verwenden

https://github.com/microsoft/terminal/issues/4413

Von links
Standard-CMD mit Transparenz, fokussiertes Terminal, Hintergrundterminal
image

Können Sie bitte andere Optionen für transparenten Hintergrund und Text (Vordergrund) hinzufügen
Ich möchte keinen transparenten Text. Es ist schwer zu lesen. Aber ich will einen transparenten Hintergrund

@zadjii-msft @cinnamon-msft

Ich hätte gerne eine Peek- Schaltfläche in der TitleBar in der Nähe der neuen Registerkarte + Schaltfläche oder der Minimieren-Schaltfläche - , genau wie Aero Peek.

Wenn Sie die Kompositionsarbeit überarbeiten, ziehen Sie es in Betracht, sie der Titelleiste hinzuzufügen. Wenn ich mit der Maus darüber fahre, kann ich den Bildschirm dahinter sehen, anstatt die ganze Zeit transparent zu bleiben.

__Relativ verwandt__

Können wir eine Vollbild-Schaltfläche in der Titelleiste aller Apps haben, die das Maximieren ermöglichen (ja auch im Terminal)! Ich denke, wir sollten Peek IMHO auch in die Liste aufnehmen, wenn wir das Windowing-System selbst hinzufügen.

@Nirmal4G Ich habe deine erste Anfrage nach #5426 verschoben. Ich bin mir ziemlich sicher, dass wir nichts gegen Ihre zweite Anfrage tun können - das klingt nach einer ziemlich umfangreichen Änderung der Fensterung _aller_ Windows-Anwendungen. Es könnte eine Anfrage sein, die gut zu Microsoft/PowerToys passen würde. IIRC, eines der ursprünglichen Powertoys, das durch Ändern der Titelleisten-Beschriftungsschaltflächen funktioniert hat
image

Da dies das Hauptproblem für Transparenz und Acryl zu sein scheint ... Ich habe gerade diese Notepads-App installiert, die ein anderer MSFT-Typ in seiner Freizeit gemacht hat, und sie scheint in der Lage zu sein, Acryl-Transparenz aufrechtzuerhalten, während sie im Hintergrund unfokussiert ist. Es verwendet auch XAML und Windows.UI.

Bitte fügen Sie diese Funktion auch irgendwann hinzu. Vielen Dank.

Die Projektseite: https://github.com/JasonStein/Notepads

--bearbeiten:
Er überfliegt das Projekt und macht für all dies seinen eigenen benutzerdefinierten Acrylpinsel:

https://github.com/JasonStein/Notepads/blob/58530f19dd0173bab13e40c9511e5277e42c4129/src/Notepads/Brushes/HostBackdropAcrylicBrush.cs

Ich glaube nicht, dass sie sagen, dass sie es nicht in Acryl behalten können, wenn sie unscharf sind, sie sagen, sie haben sich entschieden, keine umfassende unternehmensweite Designentscheidung zu treffen, um die Batterielebensdauer zu verlängern.

Jaaaaa, na ja... Transparenz/Acryl im Terminal ist die Art von Augenschmaus, die der Benutzer wahrscheinlich immer erwartet. Sonst würde es niemand wollen, denn es zu haben, während es fokussiert ist, bringt in dieser Hinsicht nicht viel.

Außerdem sind Terminalbenutzer wahrscheinlich fortgeschrittene Benutzer, die auch in Betracht ziehen, eine JSON tatsächlich bearbeiten zu müssen, um sie zu aktivieren, und sich wahrscheinlich der Auswirkungen auf den Akku in gewisser Weise bewusst sind.

Könnte es immer noch optional machen.

@ zukünftiges Selbst:

  • https://github.com/JasonStein/Notepads/blob/58530f19dd0173bab13e40c9511e5277e42c4129/src/Notepads/Brushes/HostBackdropAcrylicBrush.cs

    • Shoot, dies verwendet Win2D, von dem ich nicht sicher bin, ob wir es verwenden können, da es C# ist.

    • https://github.com/microsoft/Win2D/blob/master/winrt/docsrc/CanvasDevice.xml / https://microsoft.github.io/Win2D/html/M_Microsoft_Graphics_Canvas_CanvasDevice_GetSharedDevice.htm

  • Es gibt jedoch https://docs.microsoft.com/en-us/uwp/api/windows.ui.composition.compositor.createhostbackdropbrush?view=winrt-18362

    • das sieht vielversprechend aus

  • https://stackoverflow.com/questions/43208841/how-to-use-acrylic-accent-createhostbackdropbrush-in-windows-10-creators-upd/44576160
  • Dann schreiben wir Code
            auto rootVisual = winrt::Windows::UI::Xaml::Hosting::ElementCompositionPreview::GetElementVisual(RootGrid());
            auto compositor = rootVisual.Compositor();
            auto rootSprite = compositor.CreateSpriteVisual();
            rootSprite.Size(winrt::Windows::Foundation::Size(
                ::base::saturated_cast<float>(RootGrid().ActualWidth()),
                ::base::saturated_cast<float>(RootGrid().ActualHeight())));

            auto b = rootVisual.Compositor().CreateHostBackdropBrush();

            rootSprite.Brush(b);
            winrt::Windows::UI::Xaml::Hosting::ElementCompositionPreview::SetElementChildVisual(RootGrid(), rootSprite);
  • Oh nein, selbst damit erhalten wir vorverschwommene Inhalte
    image

  • Was mich zu https://github.com/Microsoft/WindowsCompositionSamples/issues/202 führt

  • Damit schließt sich der Kreis zu der Untersuchung, die ich bereits letztes Jahr durchgeführt habe https://github.com/microsoft/terminal/issues/1753#issuecomment-508070516

Ich verspreche hier nichts, hinterlasse nur Notizen von den Tabs, die ich heute Morgen geöffnet habe

Moment, habe ich richtig gelesen? Ein teiltransparentes Fenster oder ein Acrylglas ohne Unschärfe ist aus Sicherheitsgründen nicht machbar? Was?

Ich, wie viele, möchte/brauche dringend eine Terminal-Semi-Transparenz, wie sie an der *nix-Front seit Ewigkeiten verwendet wird. Müssen wir wirklich die "Bildschirmschoner-Route" gehen, den Bildschirm während des Malens aufnehmen, die Aufnahme als Hintergrundbild in das Fenster malen und dann die Deckkraft darüber malen?

Ich meine, wie machbar könnte ein halbtransparentes Fenster ein Vektor für einen Angriff sein… selbst ein vollständig transparenter Keylogger würde das Fenster deaktivieren. Wirklich neugierig. Und verblüfft. Aber meistens neugierig.

Zugegeben, dieser Thread ist ziemlich alt, aus einer Zeit, als Acrylic nur über eine reine UWP-Anwendung möglich war. UWPs sind ziemlich stark gegen den Status anderer Prozesse im System isoliert. Wenn eine App in diesem Kontext trivialerweise den Inhalt des Fensters dahinter vorbereiten könnte, dann könnte sie theoretisch den Inhalt von allem anderen lesen, was auf dem System in _jedem_ Kontext ausgeführt wird. Dies ist für UWP-Apps absolut nicht möglich.

Die Welt hat sich seitdem stark verändert – es gibt Apps wie das Terminal, die UWP XAML (und Acryl) verwenden, aber _keine_ UWP-Anwendungen. In diesem neuen Modell ist es vielleicht möglich, etwas anders zu machen, wir müssen nur mehr Forschung betreiben.

Beim Durchlesen der Problemumgehung gefunden. Aber nehmen Sie dies mit Vorsicht, da ich nur minimale Erfahrung mit der Entwicklung von Windows-Benutzeroberflächen habe.
Es sieht so aus, als ob eine Fabrikmethode im Acrylpinsel vorverschwommene Hintergründe unterstützt, anscheinend dort, wo die Shell dies bereits getan hätte, WENN diese Methode belichtet wird und WENN ein nicht verschwommener Hintergrund als vorverschwommener Hintergrund übergeben wird und WENN Ich liege hier nicht ganz daneben, die Fabrik fügt möglicherweise keinen Unschärfeeffekt hinzu. Aber auch hier habe ich eine hohe Wahrscheinlichkeit, dass ich hier zu 150% falsch liege, also nimm das wie du willst.

OMG, diese Diskussion ist mehr als ein Jahr alt, aber die grundlegende Glastransparenz ist immer noch nicht implementiert. Es ist Standard für Unix-Terminals.

@alxkvx Wie in diesem Thread

@alxkvx Wie in diesem Thread

Nun, ich habe mich nicht mit dem Problem beschäftigt, und ich verstehe nicht, warum der UI-Stack damit Probleme hat. Für mich persönlich ist dies ein wesentliches Feature.

Die Unschärfe und undurchsichtig werden, wenn das Terminal nicht fokussiert ist, ist einfach albern. Wer hat das verlangt? 🤷 Ich werde weiterhin cmd und Powershell verwenden.

@alxkvx Wie in diesem Thread

Nun, ich habe mich nicht mit dem Problem beschäftigt, und ich verstehe nicht, warum der UI-Stack damit Probleme hat. Für mich persönlich ist dies ein wesentliches Feature.

Das Problem ist, dass das UI-Framework (UWP XAML), in das das Windows-Terminal integriert ist, einfach keine vollständige Transparenz wie Win32- oder WPF-Apps (zB wsl-Terminal) unterstützt. Das einzige Werkzeug, zu dem sie Zugang haben, ist Acryl, das weniger für Transparenz, sondern mehr als Designakzent gedacht ist. Die Implementierung unter ihrem UI-Stack würde eine hackige Lösung wie meinen obigen Kommentar erfordern oder eine vollständige Überarbeitung der Darstellung der Konsole (zumindest ist das mein Verständnis, die Windows-Benutzeroberfläche ist nicht mein Entwicklungsbereich).

Edit: Klarstellung

@alxkvx Wie in diesem Thread

Nun, ich habe mich nicht mit dem Problem beschäftigt, und ich verstehe nicht, warum der UI-Stack damit Probleme hat. Für mich persönlich ist dies ein wesentliches Feature.

Das Problem ist, dass das UI-Framework (XAML), in das das Windows-Terminal eingebaut ist, einfach keine vollständige Transparenz wie Win32-Apps (zB WSL-Terminal) unterstützt. Das einzige Werkzeug, zu dem sie Zugang haben, ist Acryl, das weniger für Transparenz, sondern mehr als Designakzent gedacht ist. Die Implementierung unter ihrem UI-Stack würde eine hackige Lösung wie meinen obigen Kommentar erfordern oder eine vollständige Überarbeitung der Darstellung der Konsole (zumindest ist das mein Verständnis, die Windows-Benutzeroberfläche ist nicht mein Entwicklungsbereich).

Xaml unterstützt Transparenz, UWP-Fenster und Xaml Islands jedoch nicht.

Wenn Terminal in der Lage ist, zu WinUI 3 Desktop zu wechseln und das HWND selbst anzuzapfen, kann es eine nicht verschwommene Transparenz implementieren.

Acryl selbst wird für WinUI 3 verzögert - da sie es überarbeiten müssen, während es aus dem Betriebssystem extrahiert wird

Warten Sie, nein, lassen Sie uns einige Missverständnisse ausräumen - Wir können bereits direkt auf das HWND zugreifen, da wir bereits eine Win32-App sind. Wir arbeiten mit den XAML- und Kompositionsteams zusammen, um eine Lösung für dieses Problem zu finden. Nach meinem Verständnis (derzeit) hat die XAML-Insel immer einen undurchsichtigen Hintergrund, was bedeutet, dass wir nicht nur transparente Komponenten in XAML haben können, die bis zum HWND transparent sind. Ich habe keine Ahnung, ob WinUI 3 das auf magische Weise für uns lösen wird, was wir mit diesem Team mehr besprechen müssen. Zum Glück arbeiten sie im Flur neben uns (oder zumindest, als wir alle in Bürogebäuden gearbeitet haben), also ist es nicht allzu schwer, diese Diskussionen zu führen 😄

@ zukünftiges Selbst:

Ich bin mir ziemlich sicher, dass Win2D c++/winrt unterstützt (es ist in c++ geschrieben!), aber auch wenn es nicht für diesen Anwendungsfall gilt:

https://github.com/fobrs/Win2DinMFC

Außerdem glaube ich, dass benutzerdefiniertes Acryl möglich sein sollte, da ich Acryl (mit abgerundeten Ecken !!!) in WPF erreichen konnte, indem ich diesem Beispiel folgte:

https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/tree/master/dotnet/WPF/AcrylicEffect

Und dieser Beitrag ist phänomenal:

https://notes.yvt.jp/Desktop-Apps/Enabling-Backdrop-Blur

Diese sind alle sehr hilfreich, wenn Sie WPF XAML verwenden, aber wir verwenden UWP XAML, das leider immer den undurchsichtigen Hintergrund hat. Wir arbeiten mit dem WinUI-Team zusammen, um diese Einschränkung für WinUI 3.0 hoffentlich zu lockern. Es kann eine Weile dauern, bis es weitere Fortschritte zu diesem Thema gibt, während wir mit ihnen an den technischen Einzelheiten arbeiten.

So @ zadjii-MSFT, werden Sie mir die wpf Steuerung von Terminal zu sagen möglicherweise Acryl Unschärfe anpassbare Acryl unterstützen könnte, aber nicht die UWP eines (für die absehbare Zukunft) ... seltsame Zeiten 😅😅

Oh nein, UWP XAML kann Acryl gut unterstützen, es ist nur "traditionelle Opazität" (Opazität ohne den Acryleffekt), die die UWP XAML derzeit nicht unterstützen kann.

Ich würde mich freuen, wenn Sie diese Diskussion an anderer Stelle fortsetzen (vielleicht ein neues Problem einreichen, wenn Sie ein Problem haben?), da dies der Thread für _nicht verschwommene Transparenz_ ist. Wir haben bereits "Acryl" in der UWP-Steuerung, und weitere Diskussionen über "wie man Acryl in die UWP-Steuerung bekommt" ist ... Ich meine, zum Beispiel zu versuchen, einem Pferd zu erklären, wie es ein Pferd werden könnte, wenn es wirklich, wirklich wollte?

@zadjii-msft @DHowett Entschuldigung, das Acryl mit anpassbarem Unschärferadius

@zadjii-msft Ich möchte einige Experimente durchführen. Können Sie mir zeigen, wo das xaml-Hostingfenster/DesktopWindowXamlSource in Ihrem Code erstellt wird? Es ist eine sehr große Codebasis 😅😅

@AnuthaDev Es ist in src/cascadia/WindowsTerminal/IslandWindow.cpp

Okay, für wpf ist es sicher mindestens möglich:
Screenshot (363)

Vielleicht kann das Fenster in IslandWindow.cpp mit WS_EX_NOREDIRECTIONBITMAP erstellt werden und die hier befolgte Methode kann verwendet werden, um einen nicht unscharfen Acrylpinsel zu erstellen. Die Verwendung von createhostbackdropbrush() führt automatisch Unschärfe ein, daher ist createbackdropbrush() die einzige Option. Oder vielleicht funktioniert es nicht,... idk. Werde es versuchen und dir Bescheid geben....

Edit: Erzähler: Es hat nicht funktioniert!

Vielleicht kann das Fenster in IslandWindow.cpp mit WS_EX_NOREDIRECTIONBITMAP erstellt werden und die hier befolgte Methode kann verwendet werden, um einen _non blur_ Acrylbrush zu erstellen. Die Verwendung von createhostbackdropbrush() führt automatisch Unschärfe ein, daher ist createbackdropbrush() die einzige Option. Oder vielleicht funktioniert es nicht,... idk. Werde versuchen, dich wissen zu lassen...

Ich glaube nicht, dass diese Methode unter WPF steht. XAML wird in zwei verschiedenen Frameworks verwendet WPF (diese Methode) und UWP (verwendet in WT). Ich habe in der Quelle für UWP-Acryl herumgestöbert, und das einzige, was möglicherweise die traditionelle Transparenz zum Laufen bringen könnte, ist eine wirklich Hakki-Problemumgehung, bei der Sie das Betriebssystem im Grunde dazu bringen, zu denken, dass der Hintergrund bereits verschwommen ist, damit dies nicht der Fall ist um selbst eine Unschärfe hinzuzufügen, aber ich bin ein hübscher Baum, auch wenn das nicht mit XAML-Inseln kompatibel ist.

@zadjii-msft @DHowett Okay, also Folgendes
Es ist sicherlich möglich , mit win2d ein benutzerdefiniertes Unschärfe-Acryl in einer c++-win32-App zu erhalten:

(Unschärferadius 1):
Screenshot (364)

JEDOCH!! Mit Xaml-Inseln ist dies nicht möglich. Wie Sie bereits wissen, wird xaml definitiv einen undurchsichtigen Hintergrund haben ...

Dazu müssen wir Kompositions- APIs verwenden und in ein

Daher wird , wie es zur Zeit steht, nicht verwischen Acryl-Transparenz bekommen wir brauchen würden XAML Inseln und verwenden entfernen diese anstelle eines swapchainpanel.

(Wenn Sie das bereits wissen, entschuldigen Sie bitte die Zeitverschwendung...)

Daher keine Transparenz ohne eine signifikante Architekturänderung.

(Eine Schlussfolgerung, die schon klar war und zu der ich absolut nichts beigetragen habe😅😅)

Ja, also TLDR für alle, die nicht die ganze vorherige Diskussion lesen möchten, ist im Grunde, dass das Framework, das für Windows-Terminals verwendet wird, diese Funktion derzeit nicht unterstützt it) ist in Arbeit. Erst wenn das Framework (XAML-Inseln) Transparenz unterstützt, kann mit diesem Thema begonnen werden.

Ja, also TLDR für alle, die nicht die ganze vorherige Diskussion lesen möchten, ist im Grunde, dass das Framework, das für Windows-Terminals verwendet wird, diese Funktion derzeit nicht unterstützt it) ist in Arbeit. Erst wenn das Framework (XAML-Inseln) Transparenz unterstützt, kann mit diesem Thema begonnen werden.

Ich frage mich, warum die Transparenzfunktion ursprünglich nicht in diesem Projekt enthalten war und bei der Auswahl der UI-Engine nicht berücksichtigt wurde. Mit mehr als 10 Jahren Arbeit mit Linux-Terminals verfügen alle über diese Funktion und werden von vielen Benutzern aktiv verwendet. Seltsam für mich.

Powershell & CMD haben die Möglichkeit, Transparenz einzustellen. Ich verstehe, dass die verwendeten Technologien unterschiedlich sind, aber viele Benutzer verwenden Transparenzkonfigurationen

Powershell & CMD haben die Möglichkeit, Transparenz einzustellen. Ich verstehe, dass die verwendeten Technologien unterschiedlich sind, aber viele Benutzer verwenden Transparenzkonfigurationen

ja, das gleiche wie WSL-Terminal

Die CMD- und PWSH-Transparenz ist mit diesem Terminal erreichbar, aber nach allem, was ich mitbekomme, wollen die meisten Leute (mich eingeschlossen) nicht diese Version von Transparenz, eher eine *nix-ähnliche Terminal-Transparenz, bei der nur der Hintergrund durchscheinend ist anstelle von alles inklusive Text.

Es gibt auch einige hackige Möglichkeiten, Transparenz zu fälschen, mit einem Bildschirm-RECT-Greifer, der über das Terminal selbst gemalt wird und dann eine halbtransparente Farbe darüber streicht, aber auch darin gibt es Einschränkungen und Fallstricke.

Vielleicht kann dies durch die Schaffung eines darunter liegenden Fensters implementiert werden (neben?) XAML Inseln Fenster (mit dem übergeordneten Fenster Satz WS_EX_NOREDIRECTIONBITMAP) und Einstellung WS_CLIPSIBLINGS auf sie, dann Komposition api und directx Interop kann verwendet werden , um Inhalte mit transluzenten Hintergrund zu machen ( wie so ) zu diesem Fenster. Sie müssten also keine Xaml-Inseln entfernen und Dinge wie Bildlaufleisten sollten immer noch funktionieren, nur der Swapchainpanel-Teil würde ersetzt. Oder wenn das nicht funktioniert, können Sie mit HRGN ein Loch über dem Swapchainpanel-Teil schneiden, damit das darunter liegende Kompositionsfenster sichtbar wird. Es sollte keine merkliche Leistungsregression beim Übergang von Swapchainpanel zu einem Hwnd geben (wahrscheinlich)

Das Problem bei der Verfolgung eines Hackey-Workarounds besteht darin, dass er hackey und von Natur aus anfällig für Fehler ist. WinUI 3 wird höchstwahrscheinlich die vorgeschlagene Funktionalität unterstützen, daher gibt es Pläne für ihre Implementierung. Es ist nur ein wartendes Spiel, bis die offizielle Toolkette sie unterstützt. Die Entwickler haben bereits bestätigt, dass sie dabei direkt mit dem WinUI-Team zusammenarbeiten.

(Eine Schlussfolgerung, die schon klar war und zu der ich absolut nichts beigetragen habe😅😅)

Ich würde nicht sagen, dass Sie nichts beigetragen haben - ich freue mich immer über externe Bestätigungen meiner eigenen Recherchen. Ich wäre noch glücklicher gewesen, wenn Sie mir das Gegenteil bewiesen und einen effektiven Weg gefunden hätten, dies zu tun 😉

Wie bereits in diesem Thread erwähnt, arbeiten wir mit dem WinUI-Team daran, dies zu WinUI 3.0 hinzuzufügen. Ich glaube, dies wird in https://github.com/microsoft/microsoft-ui-xaml/issues/1247 verfolgt. Dies ist der Weg, den wir verfolgen werden, um diese Funktion dem Terminal hinzuzufügen, denn das Fahren dieser Lösung bedeutet auch, ein wichtiges Entwicklungsplattform-Feature für die gesamte Plattform zu entwickeln, das auch andere Anwendungen unter Windows verbessern wird.

Wie bereits in diesem Thread erwähnt, arbeiten wir mit dem WinUI-Team daran, dies zu WinUI 3.0 hinzuzufügen. Ich glaube, dies wird in microsoft/microsoft-ui-xaml#1247 verfolgt . Dies ist der Weg, den wir verfolgen werden, um diese Funktion dem Terminal hinzuzufügen, denn das Fahren dieser Lösung bedeutet auch, ein wichtiges Entwicklungsplattform-Feature für die gesamte Plattform zu entwickeln, das auch andere Anwendungen unter Windows verbessern wird.

Da das Terminal-Team diesbezüglich eine Richtung gewählt hat, sollte das Tag "Hilfe gesucht" entfernt werden?

@tajetaje guter Fang, danke!

(Eine Schlussfolgerung, die schon klar war und zu der ich absolut nichts beigetragen habe😅😅)

Ich würde nicht sagen, dass Sie nichts beigetragen haben - ich freue mich immer über externe Bestätigungen meiner eigenen Recherchen. Ich wäre noch glücklicher gewesen, wenn Sie mir das Gegenteil bewiesen und einen effektiven Weg gefunden hätten, dies zu tun 😉

Wie bereits in diesem Thread erwähnt, arbeiten wir mit dem WinUI-Team daran, dies zu WinUI 3.0 hinzuzufügen. Ich glaube, dies wird in microsoft/microsoft-ui-xaml#1247 verfolgt . Dies ist der Weg, den wir verfolgen werden, um diese Funktion dem Terminal hinzuzufügen, denn das Fahren dieser Lösung bedeutet auch, ein wichtiges Entwicklungsplattform-Feature für die gesamte Plattform zu entwickeln, das auch andere Anwendungen unter Windows verbessern wird.

@zadjii-msft, ich kann sehen, wie WinUI dabei eine Rolle spielen würde, bin mir aber nicht sicher, wie uns das grenzenlose Problem dorthin führt. In Bezug auf das tatsächliche Ergebnis, nach dem die meisten Leute suchen , denke ich, dass dies eine schöne Wiedergabe von #743 ) von dem ist, was sein könnte:

image

(Eine Schlussfolgerung, die schon klar war und zu der ich absolut nichts beigetragen habe😅😅)

Ich würde nicht sagen, dass Sie nichts beigetragen haben - ich freue mich immer über externe Bestätigungen meiner eigenen Recherchen. Ich wäre noch glücklicher gewesen, wenn Sie mir das Gegenteil bewiesen und einen effektiven Weg gefunden hätten, dies zu tun 😉
Wie bereits in diesem Thread erwähnt, arbeiten wir mit dem WinUI-Team daran, dies zu WinUI 3.0 hinzuzufügen. Ich glaube, dies wird in microsoft/microsoft-ui-xaml#1247 verfolgt . Dies ist der Weg, den wir verfolgen werden, um diese Funktion dem Terminal hinzuzufügen, denn das Fahren dieser Lösung bedeutet auch, ein wichtiges Entwicklungsplattform-Feature für die gesamte Plattform zu entwickeln, das auch andere Anwendungen unter Windows verbessern wird.

@zadjii-msft, ich kann sehen, wie WinUI dabei eine Rolle spielen würde, bin mir aber nicht sicher, wie uns das grenzenlose Problem dorthin führt. In Bezug auf das tatsächliche Ergebnis, nach dem die meisten Leute suchen , denke ich, dass dies eine schöne Wiedergabe von #743 ) von dem ist, was sein könnte:

image

https://github.com/microsoft/microsoft-ui-xaml/issues/1247 verfolgt sowohl randlos als auch transparent

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen