Terminal: Solicitud de función: opciones de opacidad estándar como la consola tradicional.

Creado en 9 may. 2019  ·  63Comentarios  ·  Fuente: microsoft/terminal

Quizás lo pasé por alto al navegar por el archivo json, pero no vi otro medio para lograr la transparencia y no soy un fanático del factor de desenfoque de los efectos acrílicos o el hecho de que se apaga cuando la ventana no está seleccionada. La consola tradicional proporciona una opacidad estática como en la mayoría de envs nix, espero que sea solo cuestión de tiempo antes de que se implemente aquí.

Area-User Interface Issue-Feature Product-Terminal

Comentario más útil

@ TCB13 Para que lo sepas, todos somos personas reales aquí sentadas en nuestras oficinas mirando nuestras bandejas de entrada, nuestra cola de clasificación y la lista de problemas de github. Estamos leyendo cada uno de estos números y _ sentimos cosas_ sobre ellos y las cosas que la gente dice en ellos. Por favor, trate de evitar ser mezquino.

Todos 63 comentarios

No es compatible en este momento, pero definitivamente es algo que no queremos perder de vista. Tendremos que hacer un poco de trabajo pesado para configurar correctamente las imágenes de la composición, pero está "en el plan".

Consulte también el n. ° 593, que tiene información adicional.

Me gusta la transparencia clásica, pero nunca usé acrílico, una de las características imprescindibles para mí :)

¡+1 en esto!

Por favor, no haga "+1" problemas, crea ruido innecesario. Aquí hay un botón +1 perfectamente bueno:
image

@ zadjii-msft con microsoft no existe un "botón +1 perfectamente bueno", incluso cuando se hace ruido, a nadie le importa ni escucha nada. Supongo que cualquiera que haya utilizado algún producto de Microsoft lo sabe.

Pero bueno, entiendo el punto. Perdón.

@ TCB13 Para que lo sepas, todos somos personas reales aquí sentadas en nuestras oficinas mirando nuestras bandejas de entrada, nuestra cola de clasificación y la lista de problemas de github. Estamos leyendo cada uno de estos números y _ sentimos cosas_ sobre ellos y las cosas que la gente dice en ellos. Por favor, trate de evitar ser mezquino.

@ DHowett-MSFT @ zadjii-msft

El hecho de que se incluyera acrílico en lugar de opacidad significa realmente que nadie consideró la usabilidad de este terminal. Me parece que algún PM acaba de decir "oh, las cosas transparentes se ven geniales, ¡hagámoslo aún más genial y agreguemos un toque borroso!". Las aplicaciones / ventanas de terminal no suelen ser transparentes porque se ven muy bien, son transparentes porque le permiten ver otras cosas detrás de la ventana, una característica útil como la mayoría de los usuarios estarán de acuerdo.

Tal vez debería preguntar a las otras personas reales de su empresa por qué fui tan agresivo en mi otro comentario. :)

@ TCB13 hubo voces que pedían que se agregara Acrylic a la terminal Command, y en ese momento no era posible por razones de compatibilidad con versiones anteriores, pero una nueva Terminal lo hace posible.

El problema con esta nueva versión es que la opacidad no es posible de inmediato con las nuevas API de ventanas que está utilizando, y es algo de lo que el equipo es consciente y tratará de hacerlo posible.

No hay necesidad de ser tan despectivo, solo porque no es una característica que usted desea o necesita personalmente.

Sería muy útil.

Además de lo que ya se ha dicho, la capacidad de tener el acrílico de la ventana cuando está enfocado y transparente cuando está desenfocado sería muy bueno, ya que haría que la transición sea menos discordante.

acordado. Personalmente, quiero la configuración de opacidad normal porque me gustan los fondos muy oscuros con una ligera transparencia. Cuando intenté usar las opciones acrílicas, hizo que el fondo fuera demasiado brillante para mi gusto. Soy un vampiro, supongo 🤷‍♂.

Me alegra saber que al menos está planeado. Gracias por crear esta herramienta y espero versiones futuras con más funciones como esta.

acordado. Personalmente, creo que la ventana cambia a un color sólido de repente cuando pierde el enfoque. La transparencia tradicional es una mejor transición
Me alegra saber que al menos está planeado. Gracias por crear esta herramienta y espero versiones futuras con más funciones como esta.

La verdad es que no usaré la consola, cuando no habrá transparencia clásica :), es imprescindible tener una función para mí :)

esto no está relacionado con este tema, sino más bien con conjuntos de publicaciones.


HAZ CLICK EN MI

> No hay necesidad de ser tan despectivo, simplemente porque no es una característica que usted desea o necesita personalmente. cuando las personas parecen estar fuera de contacto con las expectativas comunes de la mayoría de los usuarios de aplicaciones, obtienen respuestas apasionadas. y la transparencia ha estado disponible durante mucho tiempo, por lo que no es una sola persona presionando a los desarrolladores para complacer a una sola persona. como implica su última declaración, por alguna razón; siéntete libre de editarlo. ¿Quizás TCB13 fue grosero o agresivo en algún otro hilo u ocasión? como su hipérbole en su mayoría inofensiva en https://github.com/microsoft/terminal/issues/603#issuecomment-508031247 --- también, silverqx, consulte https://github.com/microsoft/terminal/issues/603#issuecomment -546613996 https://github.com/microsoft/terminal/issues/603#issuecomment-507248317 y cuánto tiempo ha pasado desde https://github.com/microsoft/terminal/tags?after=RS2-final desde que primer lanzamiento público. Parece que llevará mucho tiempo. no lo hagas dos veces, consulta https://github.com/microsoft/terminal/issues/603#issuecomment-507835880 --- de https://github.com/microsoft/terminal/issues/603#issuecomment-529696036 , iCodeSome, no acrílico por favor. simplemente deje que el acrílico sea invisible para aquellos que quieran usar transparencias. la forma en que cmd lo maneja es agradable.


para cmd, prefiero 80% a 95% de opacidad, es decir, transparencia. Ellos son la misma cosa.

el acrílico es translucidez, creo. Tendré que probarlo ya que lo desactivo en todas las máquinas con Windows que uso.


saludos ratatoeey

Entonces, para que conste, he jugado con esto. Una implementación rudimentaria no es muy complicada, pero no está ... pulida. Toda la ventana se vuelve igualmente transparente, incluidos los controles XAML (fila de pestañas, cuadros de diálogo, etc.). Creo que, desde el punto de vista de la arquitectura, sería excepcionalmente complicado intentar conseguir que _solo_ el contenido de la "Terminal" sea transparente, e incluso entonces, todos los Panes serían igualmente transparentes, incluidos los separadores, y los diálogos también serían transparentes.

image

Curiosamente, el menú desplegable de la nueva pestaña _no_ se vuelve transparente, lo que genera más preguntas.
image

Honestamente, en mi opinión, la experiencia se siente un poco sin pulir. Si esto es lo que la gente realmente quiere, no voy a decir que no, pero también quiero asegurarme de que enviamos algo de alta calidad. De ahí por qué lo dejo en la lista de trabajos pendientes, para intentar encontrar una solución _mejor_.

En realidad, me gustan las regiones que no son clientes transparentes. Así es como funciona cmd, y lo ha hecho durante un tiempo (¿tal vez RS5?):

image

Honestamente, en mi opinión, la experiencia se siente un poco sin pulir. Si esto es lo que la gente realmente quiere, no voy a decir que no, pero también quiero asegurarme de que enviamos algo de alta calidad. De ahí por qué lo dejo en la lista de trabajos pendientes, para intentar encontrar una solución _mejor_.

Me gusta bastante este efecto, las únicas ventanas sólidas que quiero son cuadros de diálogo y menús desplegables, ahora supongo que solo necesito construir esto desde la fuente: - /

¡Gracias por vincular a la modificación!

Sí, también creo que todo lo transparente es una característica y no un error 😄

La forma en que cmd lo hace es muy útil porque puede leer lo que hay debajo (por supuesto, depende del nivel de transparencia para que se vea "bien").

Sugeriría encarecidamente que los desarrolladores consideren la funcionalidad de la transparencia wrt de gnome-terminal como guía. Por mi parte, no tengo ningún uso para el acrílico y su borrosidad. Lo quiero transparente para poder ver a través de él, esté enfocado o no. Gracias.

Entonces, para que conste, he jugado con esto. Una implementación rudimentaria no es muy complicada, pero no está ... pulida. Toda la ventana se vuelve igualmente transparente, incluidos los controles XAML (fila de pestañas, cuadros de diálogo, etc.). Creo que, desde el punto de vista de la arquitectura, sería excepcionalmente complicado intentar conseguir que _solo_ el contenido de la "Terminal" sea transparente, e incluso entonces, todos los Panes serían igualmente transparentes, incluidos los separadores, y los diálogos también serían transparentes.

Está bien tener la barra de pestañas transparente, toda la ventana tiene que ser transparente, con barras de desplazamiento también.
Mucho mejor sería tener un poco más de transparencia para el contenido del terminal que para la barra de pestañas y la barra de estado, por ejemplo, alrededor del 10%, pero esto tiene una prioridad más baja y no es sustancial.
Los diálogos modales tienen que ser opacos, nadie quiere tener diálogos transparentes. 🙂
Lo ideal sería tener una transparencia diferente para el texto y el fondo, el texto debe ser un poco menos transparente que el fondo, para que sea más fácil de leer.

Lo esencial aquí es que quede bien . 🚀

Curiosamente, el menú desplegable de la nueva pestaña _no_ se vuelve transparente, lo que genera más preguntas.

Esto está bien, estos menús desplegables o desplegables no tienen que ser transparentes, es mucho mejor tenerlos opacos.

Honestamente, en mi opinión, la experiencia se siente un poco sin pulir. Si esto es lo que la gente realmente quiere, no voy a decir que no, pero también quiero asegurarme de que enviamos algo de alta calidad. De ahí por qué lo dejo en la lista de trabajos pendientes, para intentar encontrar una solución _mejor_.

Tienes que jugar un poco con él, el fondo morado no es un buen ejemplo de un fondo transparente, se ve mucho mejor con fondo negro.
Algunos ejemplos 1 , 2 .

Si configura una transparencia buena y equilibrada para una terminal, puede ayudarlo en algunos escenarios, en mi flujo de trabajo me ayuda en un 5-10% de los casos, cuando no tengo que cambiar a la ventana subyacente. Esto es bueno desde un punto de vista práctico y el valor agregado es que se ve bien. 🙂

Aquí hay un enlace al código, cómo se implementa en conemu.

@ zadjii-msft Estaría totalmente bien con su transparencia experimental si se implementara como en mi sugerencia
enfocado - useAcrílico
desenfocado - use transparencia

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

Desde la izquierda
CMD estándar con transparencia, terminal enfocado, terminal en segundo plano
image

¿Puedes agregar diferentes opciones para fondo transparente y texto (foregorund)?
No quiero texto transparente. Es dificil de leer. Pero quiero un fondo transparente

@ zadjii-msft @ cinnamon-msft

Me gustaría un botón Peek en la barra de título cerca de la nueva pestaña + botón o el botón minimizar - , al igual que Aero Peek.

Si están rehaciendo el trabajo de composición, considere agregarlo a la barra de título. De modo que cuando coloco el cursor sobre él, puedo ver la pantalla detrás, en lugar de permanecer transparente todo el tiempo.

__ Relativamente relacionado__

¿Podemos tener un botón de pantalla completa en la barra de título en todas las aplicaciones que permiten maximizar (sí, también en la terminal)? Creo que también deberíamos agregar Peek a la lista en mi humilde opinión, si estamos agregando el sistema de ventanas en sí.

@ Nirmal4G He trasladado su primera solicitud al # 5426. Estoy bastante seguro de que no hay nada que podamos hacer con respecto a su segunda solicitud; parece un cambio bastante extenso en el sistema de ventanas de _todas_ las aplicaciones de Windows. Podría ser una solicitud que encajaría bien en Microsoft / PowerToys . IIRC, uno de los powertoys originales funcionó modificando los botones de leyenda de la barra de título
image

Dado que este parece ser el problema general para la transparencia y el acrílico ... Acabo de instalar esta aplicación de Bloc de notas que hizo otro tipo de MSFT en su tiempo libre, y parece ser capaz de mantener la transparencia acrílica mientras está desenfocada en el fondo. También usa XAML y Windows.UI.

Agregue esta capacidad también en algún momento. Gracias.

La página del proyecto: https://github.com/JasonStein/Notepads

--editar:
Hojeando el proyecto, está haciendo su propio pincel acrílico personalizado para todo esto:

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

No creo que estén diciendo que no pueden mantenerlo en acrílico cuando están desenfocados, están diciendo que han decidido no hacerlo como una decisión de diseño amplia para toda la empresa para ahorrar batería.

Sí, bueno ... La transparencia / acrílico en el terminal es el tipo de atractivo visual que el usuario probablemente espera que esté allí todo el tiempo. De lo contrario, nadie lo querría, porque tenerlo mientras está enfocado no hace mucho en ese sentido.

Además, es probable que los usuarios de terminales sean usuarios avanzados, que también consideran la necesidad de editar un JSON para habilitarlo, y probablemente estarían al tanto del impacto de la batería de alguna manera.

Todavía podría hacerlo opcional.

@ yo futuro:

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

    • Dispara, esto está usando Win2D, que no estoy seguro de que podamos usar, ya que es C #

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

  • Sin embargo, existe https://docs.microsoft.com/en-us/uwp/api/windows.ui.composition.compositor.createhostbackdropbrush?view=winrt-18362

    • esto parece prometedor

  • https://stackoverflow.com/questions/43208841/how-to-use-acbling-accent-createhostbackdropbrush-in-windows-10-creators-upd/44576160
  • Entonces escribiremos un código
            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 no, incluso con esto, obtenemos contenido previamente borroso
    image

  • Lo que me lleva a https://github.com/Microsoft/WindowsCompositionSamples/issues/202

  • Lo que me trae un círculo completo a la investigación que ya hice en este último año https://github.com/microsoft/terminal/issues/1753#issuecomment-508070516

No prometo nada aquí, solo dejo notas de las pestañas que tengo abiertas esta mañana

Espera, ¿lo leí correctamente? ¿Tener una ventana parcialmente transparente o un acrílico sin desenfoque no es factible debido a problemas de seguridad? ¿Qué?

Yo, como muchos, quiero / necesito desesperadamente una semitransparencia terminal como la que se ha usado en el frente de * nix en años. ¿Realmente tenemos que ir por la "ruta del protector de pantalla", capturar la pantalla durante la pintura, pintar la captura como una imagen de fondo en la ventana y luego pintar la opacidad encima?

Quiero decir, ¿qué tan factible podría ser una ventana semitransparente un vector para un ataque ... incluso un keylogger completamente transparente desactivaría la ventana? Realmente curioso. Y desconcertado. Pero sobre todo curioso.

Por supuesto, ese hilo es bastante antiguo, de una época en que la única forma de hacer Acrylic era desde una aplicación UWP pura. Los UWP están bastante aislados contra la posibilidad de leer el estado de otros procesos en el sistema. Si una aplicación en este contexto pudiera preparar trivialmente el contenido de la ventana detrás de ella, entonces teóricamente podría leer el contenido de cualquier otra cosa que se esté ejecutando en el sistema, en _cualquier_ contexto. Esto es algo que no es posible en absoluto para las aplicaciones para UWP.

El mundo ha cambiado mucho desde entonces: hay aplicaciones como la Terminal que usan UWP XAML (y acrílico) pero _no son_ aplicaciones UWP. En este nuevo modelo, podría ser posible que hagamos algo de manera diferente, solo necesitamos investigar más.

Al leer la fuente del AcrylicBrush , es posible que haya encontrado una solución. Pero tome esto con un grano de sal, ya que tengo una experiencia mínima con el desarrollo de la interfaz de usuario de Windows.
Parece que un método de fábrica en el Pincel acrílico tiene soporte para fondos previamente borrosos, aparentemente donde el caparazón ya lo habría hecho, SI ese método está expuesto y SI se pasa un fondo no borroso como un fondo previamente borroso y SI No estoy totalmente fuera de lugar aquí, es posible que la fábrica no agregue un efecto de desenfoque en absoluto. Pero de nuevo, tengo una alta probabilidad de equivocarme en un 150% aquí, así que tómelo como quiera.

Dios mío, esta discusión tiene más de un año, pero la transparencia de vidrio esencial aún no se ha implementado. Es estándar para terminales Unix.

@alxkvx Como se discutió

@alxkvx Como se discutió

Bueno, en realidad no profundicé en el problema, y ​​no entiendo por qué la pila de UI tiene problemas con eso, sé que al usar el terminal WSL puedo hacer clic derecho> Propiedades> Establecer opacidad y obtendré transparencia de vidrio. Para mí, personalmente, esta es una característica esencial.

El desenfoque y volverse opaco cuando el terminal no está enfocado es simplemente una tontería. ¿Quién pidió esto? 🤷 Seguiré usando cmd y powershell.

@alxkvx Como se discutió

Bueno, en realidad no profundicé en el problema, y ​​no entiendo por qué la pila de UI tiene problemas con eso, sé que al usar el terminal WSL puedo hacer clic derecho> Propiedades> Establecer opacidad y obtendré transparencia de vidrio. Para mí, personalmente, esta es una característica esencial.

El problema es que el marco de la interfaz de usuario (UWP XAML) en el que está integrado el terminal de Windows simplemente no admite la transparencia total como las aplicaciones win32 o WPF (por ejemplo, el terminal wsl). La única herramienta a la que tienen acceso es el acrílico, que está menos destinado a la transparencia y más a un acento de diseño. Implementarlo en su pila de interfaz de usuario requeriría una solución pirata como mi comentario anterior o una reelaboración total de cómo se representa la consola (al menos eso es lo que entiendo, la interfaz de usuario de Windows no es mi campo de desarrollo)

Editar: aclaración

@alxkvx Como se discutió

Bueno, en realidad no profundicé en el problema, y ​​no entiendo por qué la pila de UI tiene problemas con eso, sé que al usar el terminal WSL puedo hacer clic derecho> Propiedades> Establecer opacidad y obtendré transparencia de vidrio. Para mí, personalmente, esta es una característica esencial.

El problema es que el marco de la interfaz de usuario (XAML) en el que está integrado el terminal de Windows simplemente no admite la transparencia total como las aplicaciones win32 (por ejemplo, el terminal wsl). La única herramienta a la que tienen acceso es el acrílico, que está menos destinado a la transparencia y más a un acento de diseño. Implementarlo en su pila de interfaz de usuario requeriría una solución pirata como mi comentario anterior o una reelaboración total de cómo se representa la consola (al menos eso es lo que entiendo, la interfaz de usuario de Windows no es mi campo de desarrollo)

Xaml admite la transparencia, pero las ventanas de UWP y las islas Xaml no.

Cuando Terminal pueda moverse a WinUI 3 Desktop y pueda acceder al propio HWND, podrá implementar una Transparencia no borrosa.

El acrílico en sí se retrasará para WinUI 3, ya que tienen que volver a trabajarlo mientras lo extraen del sistema operativo.

Espere no, aclaremos algunos conceptos erróneos: ya podemos acceder al HWND directamente, porque ya somos una aplicación win32. Estamos trabajando con los equipos de composición y XAML para intentar encontrar una solución a esto. Según tengo entendido (actualmente), la isla XAML siempre tiene un fondo opaco, lo que significa que no podemos simplemente tener componentes transparentes en XAML que sean transparentes hasta el HWND. No tengo idea de si WinUI 3 nos resolverá mágicamente esto, que es algo que tendremos que discutir más con ese equipo. Afortunadamente, trabajan en el pasillo junto a nosotros (o al menos lo hicieron cuando todos trabajábamos en edificios de oficinas), por lo que tener estas discusiones no es demasiado difícil 😄

@ yo futuro:

Estoy bastante seguro de que Win2D es compatible con c ++ / winrt (¡está escrito en c ++!), Pero incluso si no fuera para este caso de uso, existe esto:

https://github.com/fobrs/Win2DinMFC

Además, creo que el acrílico personalizado debería ser posible porque pude lograr acrílico (¡con esquinas redondeadas !) En WPF, siguiendo este ejemplo:

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

Y esta publicación es fenomenal:

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

Todos estos son realmente útiles si está usando WPF XAML, pero estamos usando UWP XAML, que desafortunadamente siempre tendrá el fondo opaco. Estamos trabajando con el equipo de WinUI para, con suerte, relajar esa restricción para WinUI 3.0. Puede que pase un tiempo antes de que se produzca algún otro progreso en este tema, mientras trabajamos en los detalles técnicos con ellos.

@ zadjii-msft Entonces, me estás diciendo que el control de wpf de la terminal podría admitir el acrílico personalizable de desenfoque acrílico, pero no el de UWP (en el futuro previsible) ... tiempos extraños 😅😅

Oh no, el UWP XAML uno puede admitir acrílico muy bien, es solo "opacidad tradicional" (opacidad sin el efecto acrílico) que el UWP XAML uno no puede admitir actualmente.

Me encantaría que continuara esta discusión en otro lugar (¿quizás presente un nuevo problema si tiene un problema?) Porque este es el hilo de la _transparencia no borrosa_. Ya tenemos "acrílico" en el control de UWP, y discutir más a fondo "cómo obtener acrílico en el control de UWP" es ... quiero decir, tratar de explicarle a un caballo cómo podría convertirse en un caballo si realmente, realmente ¿quería?

@ zadjii-msft @DHowett Lo siento, no quise decir eso. Por acrílico me refiero a acrílico con radio de desenfoque personalizable.

@ zadjii-msft Quiero hacer algunos experimentos, ¿puede indicarme dónde se crea la ventana de alojamiento xaml / DesktopWindowXamlSource en su código? Es una base de código muy grande 😅😅

@AnuthaDev Está en src/cascadia/WindowsTerminal/IslandWindow.cpp

De acuerdo, es al menos posible para wpf con seguridad:
Screenshot (363)

Tal vez la ventana en IslandWindow.cpp se pueda crear con WS_EX_NOREDIRECTIONBITMAP y el método que se sigue aquí se puede usar para crear un pincel acrílico que no sea borroso . El uso de createhostbackdropbrush () introduce el desenfoque automáticamente, por lo que createbackdropbrush () es la única opción. O tal vez no funcione, ... idk. Intentaré hacértelo saber ...

Editar: Narrador: ¡No funcionó!

Tal vez la ventana en IslandWindow.cpp se pueda crear con WS_EX_NOREDIRECTIONBITMAP y el método que se sigue aquí se puede utilizar para crear un pincel acrílico _no borroso_. El uso de createhostbackdropbrush () introduce el desenfoque automáticamente, por lo que createbackdropbrush () es la única opción. O tal vez no funcione, ... idk. Intentaré hacértelo saber ...

No lo creo ya que ese método está bajo WPF. XAML se usa en dos marcos diferentes WPF (ese método) y UWP (usado en WT). He buscado en la fuente del acrílico UWP, y lo único que podría hacer que la transparencia tradicional funcione es una solución realmente Hakki en la que básicamente se engaña al sistema operativo para que piense que el fondo ya se ha difuminado, por lo que no tiene para agregar un desenfoque en sí, pero soy un árbol bonito, incluso eso no es compatible con las islas XAML.

@ zadjii-msft @DHowett Bien, esto es lo que encontré:
Ciertamente, es posible obtener un acrílico difuminado personalizado en una aplicación c ++ win32 usando win2d:

(Radio de desenfoque 1):
Screenshot (364)

¡¡SIN EMBARGO!! No puede hacerlo con las islas xaml. Como ya sabes, definitivamente habrá un fondo opaco detrás de xaml ...

Para hacer esto, necesitamos usar apis de composición y renderizar a un hwnd DesktopWindowTarget.

Por lo tanto, tal como está actualmente, para obtener una transparencia esto en lugar de un panel de cadena de intercambio.

(Si ya lo sabe, perdón por perder el tiempo ...)

Por lo tanto, no hay transparencia sin un cambio de arquitectura significativo.

(Una conclusión que ya era aparente y a la que no aporté absolutamente nada😅😅)

Sí, entonces TLDR para cualquiera que no quiera leer toda la discusión anterior es básicamente que el marco que se usa para el terminal de Windows no es compatible actualmente con esta característica SIN EMBARGO el desarrollo en ese marco es continuo y transparente (hasta donde yo entiendo está en proceso. Por lo tanto, solo una vez que el marco (islas XAML) admita la transparencia, se puede iniciar este problema.

Sí, entonces TLDR para cualquiera que no quiera leer toda la discusión anterior es básicamente que el marco que se usa para el terminal de Windows no es compatible actualmente con esta característica SIN EMBARGO el desarrollo en ese marco es continuo y transparente (hasta donde yo entiendo está en proceso. Por lo tanto, solo una vez que el marco (islas XAML) admita la transparencia, se puede iniciar este problema.

Me pregunto por qué la función de transparencia no se incluyó inicialmente en ese proyecto y no se consideró cuando se eligió el motor de interfaz de usuario. Con más de 10 años trabajando con terminales Linux, todos tienen esa característica y muchos usuarios la utilizan activamente. Extraño para mi

Powershell y CMD tienen la opción de configurar la transparencia. Entiendo que las tecnologías utilizadas son diferentes, pero muchos usuarios utilizan configuraciones de transparencia

Powershell y CMD tienen la opción de configurar la transparencia. Entiendo que las tecnologías utilizadas son diferentes, pero muchos usuarios utilizan configuraciones de transparencia

sí, lo mismo que el terminal WSL

La transparencia CMD y PWSH se puede lograr con este terminal, pero por lo que deduzco, la mayoría de las personas (incluido yo mismo) no quieren esa versión de transparencia, sino una transparencia de terminal similar a * nix, donde solo el fondo es translúcido en lugar de todo, texto incluido.

Además, hay algunas formas piratas de falsificar la transparencia, con una captura de pantalla RECT, pintada sobre el terminal y luego pintando un color semitransparente, pero incluso en eso hay limitaciones y trampas.

Tal vez esto se pueda implementar creando una ventana debajo (¿al lado?) De la ventana de islas xaml (con la ventana principal configurada en WS_EX_NOREDIRECTIONBITMAP) y configurando WS_CLIPSIBLINGS en ella, luego la api de composición y la interoperabilidad de directx se pueden usar para representar contenido con fondo translúcido ( como entonces ) a esta ventana. Por lo tanto, no necesitaría eliminar las islas xaml y cosas como las barras de desplazamiento deberían funcionar, solo se reemplazaría la parte del panel de cadena de intercambio. O tal vez, si eso no funciona, puede hacer un agujero en la parte del panel de la cadena de intercambio usando HRGN, de modo que la ventana de composición debajo se vuelva visible. No debería haber ninguna regresión de rendimiento notable que se mueva de swapchainpanel a un hwnd (probablemente)

El problema de buscar una solución alternativa de hackey es que es hackey y es inherentemente propenso a los errores. Lo más probable es que WinUI 3 admita la funcionalidad propuesta, por lo que hay planes para implementarla, es solo un juego de espera para que la cadena de herramientas oficial lo admita. Los desarrolladores ya han confirmado que están colaborando directamente con el equipo de WinUI en esto.

(Una conclusión que ya era aparente y a la que no aporté absolutamente nada😅😅)

No diría que no aportó nada; siempre estoy feliz de tener una confirmación externa de mi propia investigación. Hubiera sido aún más feliz si me hubieras demostrado que estaba equivocado y hubieras encontrado una manera efectiva de hacer esto 😉

Como se mencionó anteriormente en este hilo, estamos trabajando con el equipo de WinUI para agregar esto a WinUI 3.0. Creo que esto se está rastreando en https://github.com/microsoft/microsoft-ui-xaml/issues/1247. Este es el camino que seguiremos para que esta función se agregue a la Terminal, porque impulsar esta solución también significa impulsar una función importante de la plataforma de desarrollo para toda la plataforma, una que también ayudará a mejorar otras aplicaciones en Windows.

Como se mencionó anteriormente en este hilo, estamos trabajando con el equipo de WinUI para agregar esto a WinUI 3.0. Creo que esto se está rastreando en microsoft / microsoft-ui-xaml # 1247 . Este es el camino que seguiremos para que esta función se agregue a la Terminal, porque impulsar esta solución también significa impulsar una función importante de la plataforma de desarrollo para toda la plataforma, una que también ayudará a mejorar otras aplicaciones en Windows.

Dado que el equipo de la terminal ha elegido una dirección en este caso, ¿debería eliminarse la etiqueta "Se busca ayuda"?

@tajetaje buena atrapada, gracias!

(Una conclusión que ya era aparente y a la que no aporté absolutamente nada😅😅)

No diría que no aportó nada; siempre estoy feliz de tener una confirmación externa de mi propia investigación. Hubiera sido aún más feliz si me hubieras demostrado que estaba equivocado y hubieras encontrado una manera efectiva de hacer esto 😉

Como se mencionó anteriormente en este hilo, estamos trabajando con el equipo de WinUI para agregar esto a WinUI 3.0. Creo que esto se está rastreando en microsoft / microsoft-ui-xaml # 1247 . Este es el camino que seguiremos para que esta función se agregue a la Terminal, porque impulsar esta solución también significa impulsar una función importante de la plataforma de desarrollo para toda la plataforma, una que también ayudará a mejorar otras aplicaciones en Windows.

@ zadjii-msft, puedo ver cómo WinUI jugaría un papel en esto, pero no estoy seguro de cómo el problema sin fronteras nos lleva allí. En términos del resultado real que la mayoría de la gente busca , creo que esta es una hermosa interpretación de # 743 ) de lo que podría ser:

image

(Una conclusión que ya era aparente y a la que no aporté absolutamente nada😅😅)

No diría que no aportó nada; siempre estoy feliz de tener una confirmación externa de mi propia investigación. Hubiera sido aún más feliz si me hubieras demostrado que estaba equivocado y hubieras encontrado una manera efectiva de hacer esto 😉
Como se mencionó anteriormente en este hilo, estamos trabajando con el equipo de WinUI para agregar esto a WinUI 3.0. Creo que esto se está rastreando en microsoft / microsoft-ui-xaml # 1247 . Este es el camino que seguiremos para que esta función se agregue a la Terminal, porque impulsar esta solución también significa impulsar una función importante de la plataforma de desarrollo para toda la plataforma, una que también ayudará a mejorar otras aplicaciones en Windows.

@ zadjii-msft, puedo ver cómo WinUI jugaría un papel en esto, pero no estoy seguro de cómo el problema sin fronteras nos lleva allí. En términos del resultado real que la mayoría de la gente busca , creo que esta es una hermosa interpretación de # 743 ) de lo que podría ser:

image

https://github.com/microsoft/microsoft-ui-xaml/issues/1247 rastrea tanto sin bordes como con transparencia

¿Fue útil esta página
0 / 5 - 0 calificaciones