Terminal: Permintaan Fitur: Opsi Opacity Standar seperti konsol tradisional.

Dibuat pada 9 Mei 2019  ·  63Komentar  ·  Sumber: microsoft/terminal

Mungkin saya mengabaikannya saat menelusuri file json tetapi saya tidak melihat cara lain untuk mencapai transparansi dan saya bukan penggemar faktor pengaburan efek akrilik atau fakta bahwa itu mati ketika jendela tidak dipilih. Konsol tradisional menyediakan opacity statis seperti di kebanyakan envs nix, saya harap ini hanya masalah waktu sebelum diterapkan di sini?

Area-User Interface Issue-Feature Product-Terminal

Komentar yang paling membantu

@TCB13 Asal tahu saja, kami semua adalah orang-orang yang sebenarnya duduk di kantor kami melihat kotak masuk kami, dan antrian triase kami, dan daftar masalah github. Kami membaca setiap masalah ini, dan kami _merasakan sesuatu_ tentangnya dan hal-hal yang dikatakan orang di dalamnya. Silakan mencoba untuk tidak menjadi jahat.

Semua 63 komentar

Itu tidak didukung saat ini, tetapi itu pasti sesuatu yang tidak ingin kami lewatkan. Kita perlu melakukan sedikit pekerjaan berat untuk mendapatkan komposisi visual yang diatur dengan benar, tetapi ini "dalam rencana."

Lihat juga #593, yang memiliki info tambahan.

Saya suka transparansi klasik, tetapi tidak pernah menggunakan akrilik, salah satu fitur yang harus dimiliki untuk saya :)

+1 untuk ini!

Tolong jangan "+1" masalah, itu menciptakan kebisingan yang tidak perlu. Ada tombol +1 yang sangat bagus di sini:
image

@zadjii-msft dengan microsoft tidak ada yang namanya "tombol +1 yang sangat bagus", bahkan ketika membuat suara tidak ada yang benar-benar peduli atau mendengarkan apa pun. Saya kira siapa pun yang pernah menggunakan produk Microsoft mengetahui hal ini.

Tapi hei, aku mengerti maksudnya. Maaf.

@TCB13 Asal tahu saja, kami semua adalah orang-orang yang sebenarnya duduk di kantor kami melihat kotak masuk kami, dan antrian triase kami, dan daftar masalah github. Kami membaca setiap masalah ini, dan kami _merasakan sesuatu_ tentangnya dan hal-hal yang dikatakan orang di dalamnya. Silakan mencoba untuk tidak menjadi jahat.

@DHowett-MSFT @zadjii-msft

Fakta bahwa akrilik dimasukkan alih-alih opacity benar-benar berarti bahwa tidak ada yang benar-benar mempertimbangkan kegunaan terminal ini. Tampak bagi saya bahwa beberapa PM baru saja mengatakan "oh hal-hal transparan terlihat keren, mari kita membuatnya lebih keren dan menambahkan blur!". Aplikasi terminal / jendela biasanya tidak transparan karena terlihat bagus, mereka transparan karena memungkinkan Anda melihat hal-hal lain di balik jendela - fitur yang berguna karena sebagian besar pengguna akan setuju.

Mungkin Anda harus bertanya kepada orang lain yang sebenarnya di perusahaan Anda mengapa saya begitu agresif dalam komentar saya yang lain. :)

@TCB13 ada suara yang meminta Akrilik untuk ditambahkan ke terminal Perintah, dan pada saat itu tidak mungkin karena alasan kompatibilitas mundur, tetapi Terminal baru memungkinkannya.

Masalah dengan versi baru ini adalah bahwa Opacity tidak segera dimungkinkan dengan API Windowing baru yang digunakan ini, dan merupakan sesuatu yang disadari oleh tim, dan akan berusaha untuk memungkinkan.

Tidak perlu terlalu meremehkan, hanya karena itu bukan fitur yang Anda inginkan atau butuhkan secara pribadi.

Ini akan sangat berguna.

Selain apa yang telah dikatakan, kemampuan untuk memiliki akrilik jendela saat fokus dan transparan saat tidak fokus akan sangat bagus karena akan membuat transisi itu tidak terlalu menggelegar.

sepakat. Saya pribadi menginginkan pengaturan opacity biasa karena saya suka latar belakang yang sangat gelap dengan sedikit transparansi. Ketika saya mencoba menggunakan opsi akrilik, itu membuat latar belakang terlalu terang untuk selera saya. Saya seorang vampir saya kira .

Senang mendengar bahwa itu setidaknya direncanakan. Terima kasih telah membuat alat ini dan saya menantikan rilis mendatang dengan lebih banyak fitur seperti ini.

sepakat. Saya pribadi berpikir bahwa jendela berubah langsung menjadi warna solid tiba-tiba ketika kehilangan fokus. Transparansi tradisional adalah transisi yang lebih baik
Senang mendengar bahwa itu setidaknya direncanakan. Terima kasih telah membuat alat ini dan saya menantikan rilis mendatang dengan lebih banyak fitur seperti ini.

Yang benar adalah, saya tidak akan menggunakan konsol, ketika tidak akan ada transparansi klasik :), itu harus memiliki fitur untuk saya :)

ini tidak terkait dengan masalah ini melainkan ke kumpulan posting.


KLIK SAYA

> Tidak perlu terlalu meremehkan, hanya karena itu bukan fitur yang Anda inginkan atau butuhkan secara pribadi. ketika orang-orang tampaknya jauh dari harapan umum sebagian besar pengguna aplikasi, mereka mendapatkan tanggapan yang bersemangat. dan transparansi telah tersedia sejak lama, jadi tidak ada satu orang pun yang menekan para pengembang untuk menyenangkan satu orang. sebagai pernyataan terakhir Anda menyiratkan, untuk beberapa alasan; jangan ragu untuk mengeditnya. mungkin TCB13 kasar atau agresif di beberapa utas atau kesempatan lain? sebagai hiperbola yang sebagian besar tidak berbahaya di https://github.com/microsoft/terminal/issues/603#issuecomment-508031247 --- juga, silverqx, lihat https://github.com/microsoft/terminal/issues/603#issuecomment -546613996 https://github.com/microsoft/terminal/issues/603#issuecomment-507248317 dan sudah berapa lama sejak https://github.com/microsoft/terminal/tags?after=RS2-final sejak itu rilis publik pertama. Sepertinya, itu akan memakan waktu lama. jangan lakukan dua kali, lihat https://github.com/microsoft/terminal/issues/603#issuecomment-507835880 --- dari https://github.com/microsoft/terminal/issues/603#issuecomment-529696036 , iCodeSometime, tolong jangan akrilik. biarkan akrilik tidak terlihat oleh mereka yang ingin menggunakan transparansi. cara cmd menanganinya bagus.


untuk cmd, saya lebih suka opacity 80% hingga 95%, yaitu transparansi. mereka adalah hal yang sama.

akrilik tembus pandang, saya pikir. Saya harus mengujinya saat saya menonaktifkannya di semua mesin Windows yang saya gunakan.


salam ratatoeey

Jadi sebagai catatan, saya sudah bermain dengan ini. Implementasi yang belum sempurna tidak terlalu rumit, tetapi tidak... dipoles. Seluruh jendela menjadi sama transparannya termasuk kontrol XAML (baris tab, dialog, dll.). Saya pikir dari sudut pandang arsitektur, akan sangat sulit untuk mencoba dan membuat _just_ konten "Terminal" transparan, dan meskipun demikian, semua Panel akan sama transparannya, termasuk pemisah, dan dialog juga akan tetap transparan.

image

Cukup aneh, MenuFlyout untuk dropdown tab baru _tidak_ menjadi transparan, yang menimbulkan lebih banyak pertanyaan.
image

Sejujurnya menurut _my_, pengalaman itu terasa sedikit kasar. Jika ini yang benar-benar diinginkan orang, saya tidak akan mengatakan tidak, tetapi saya juga ingin memastikan kami mengirimkan sesuatu yang berkualitas tinggi. Oleh karena itu mengapa saya meninggalkannya di backlog, untuk mencoba dan menemukan solusi _lebih baik_.

Sebenarnya, saya suka daerah non-klien transparan. Begitulah cara kerja cmd, dan untuk sementara waktu (mungkin RS5?):

image

Sejujurnya menurut _my_, pengalaman itu terasa sedikit kasar. Jika ini yang benar-benar diinginkan orang, saya tidak akan mengatakan tidak, tetapi saya juga ingin memastikan kami mengirimkan sesuatu yang berkualitas tinggi. Oleh karena itu mengapa saya meninggalkannya di backlog, untuk mencoba dan menemukan solusi _lebih baik_.

Saya sangat menyukai efek ini - satu-satunya jendela solid yang saya inginkan adalah dialog & dropdown - sekarang saya kira saya hanya perlu membangun ini dari sumber :-/

Terima kasih telah menautkan ke modifikasi!

Ya, saya juga berpikir bahwa semua yang transparan adalah fitur dan bukan bug

Cara cmd melakukannya sangat berguna karena Anda dapat membaca apa yang ada di bawahnya (tentu saja tergantung pada tingkat transparansi agar terlihat "bagus").

Saya sangat menyarankan agar para pengembang melihat fungsionalitas transparansi wrt gnome-terminal sebagai panduan. Bagi saya, saya tidak menggunakan akrilik dan ketidakjelasannya. Saya ingin transparan sehingga saya bisa melihatnya, apakah itu fokus atau tidak. Terima kasih.

Jadi sebagai catatan, saya sudah bermain dengan ini. Implementasi yang belum sempurna tidak terlalu rumit, tetapi tidak... dipoles. Seluruh jendela menjadi sama transparannya termasuk kontrol XAML (baris tab, dialog, dll.). Saya pikir dari sudut pandang arsitektur, akan sangat sulit untuk mencoba dan membuat _just_ konten "Terminal" transparan, dan meskipun demikian, semua Panel akan sama transparannya, termasuk pemisah, dan dialog juga akan tetap transparan.

Tidak masalah jika bilah tab transparan, seluruh jendela harus transparan, dengan bilah gulir juga.
Jauh lebih baik untuk memiliki sedikit lebih banyak transparansi untuk konten terminal, daripada untuk bilah tab dan bilah status, misalnya sekitar 10%, tetapi ini memiliki prioritas lebih rendah dan tidak substansial.
Dialog modal harus buram, tidak ada yang ingin memiliki dialog transparan. 🙂
Idealnya adalah memiliki transparansi yang berbeda untuk teks dan latar belakang, teks harus sedikit kurang transparan daripada latar belakang, agar lebih mudah dibaca.

Hal penting di sini adalah membuatnya terlihat bagus . 🚀

Cukup aneh, MenuFlyout untuk dropdown tab baru _tidak_ menjadi transparan, yang menimbulkan lebih banyak pertanyaan.

Tidak apa-apa, menu dropdown atau flyout ini tidak harus transparan, jauh lebih baik untuk membuatnya buram.

Sejujurnya menurut _my_, pengalaman itu terasa sedikit kasar. Jika ini yang benar-benar diinginkan orang, saya tidak akan mengatakan tidak, tetapi saya juga ingin memastikan kami mengirimkan sesuatu yang berkualitas tinggi. Oleh karena itu mengapa saya meninggalkannya di backlog, untuk mencoba dan menemukan solusi _lebih baik_.

Anda harus sedikit bermain dengannya, latar belakang ungu bukanlah contoh yang baik untuk latar belakang transparan, terlihat jauh lebih baik dengan latar belakang hitam.
Beberapa contoh 1 , 2 .

Jika Anda mengatur transparansi yang baik dan seimbang untuk terminal, ini dapat membantu Anda dalam beberapa skenario, dalam alur kerja saya, ini membantu saya dalam kasus 5-10%, ketika saya tidak harus beralih ke jendela yang mendasarinya. Ini bagus dari sudut pandang praktis dan nilai tambah adalah tampilannya bagus. 🙂

Berikut ini tautan ke kode, bagaimana penerapannya di conemu.

@zadjii-msft Saya akan baik-baik saja dengan transparansi eksperimental Anda jika diterapkan seperti dalam saran saya
fokus - gunakanAcrylic
tidak fokus - gunakan transparansi

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

Dari kiri
CMD standar dengan transparansi, terminal fokus, terminal latar belakang
image

Bisakah Anda menambahkan. opsi berbeda untuk latar belakang dan teks transparan (foregorund)
Saya tidak ingin teks transparan. Sulit untuk membaca. Tapi saya ingin latar belakang transparan

@zadjii-msft @cinnamon-msft

Saya ingin tombol Peek pada TitleBar dekat tab baru tombol + atau tombol minimize - , seperti Aero Peek.

Jika kalian mengulang pekerjaan komposisi, silakan pertimbangkan untuk menambahkannya ke TitleBar. Sehingga ketika saya mengarahkan kursor ke atasnya, saya dapat melihat layar di belakang, daripada tetap transparan sepanjang waktu.

__Relatif Terkait__

Bisakah kita memiliki tombol Layar Penuh di TitleBar di semua aplikasi yang memungkinkan memaksimalkan (ya di terminal juga)! Saya pikir kita harus menambahkan Peek ke daftar juga IMHO, jika kita menambahkan di sistem Windowing itu sendiri.

@Nirmal4G Saya telah memindahkan permintaan pertama Anda ke #5426. Saya cukup yakin tidak ada yang bisa kami lakukan tentang permintaan kedua Anda - kedengarannya seperti perubahan yang cukup luas pada windowing aplikasi _all_ Windows. Ini mungkin permintaan yang cocok dengan Microsoft/PowerToys . IIRC, salah satu powertoy asli bekerja dengan memodifikasi tombol judul bilah judul
image

Karena ini tampaknya menjadi masalah umum untuk transparansi dan akrilik... Saya baru saja menginstal Aplikasi Notepads yang dilakukan beberapa orang MSFT lain di waktu luangnya, dan tampaknya dapat mempertahankan transparansi akrilik saat tidak fokus di latar belakang. Ini menggunakan XAML dan Windows.UI juga.

Harap tambahkan kemampuan ini juga, di beberapa titik. Terima kasih.

Halaman proyek: https://github.com/JasonStein/Notepads

--edit:
Membaca sepintas proyek, dia melakukan kuas akrilik kustomnya sendiri untuk semua ini:

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

Saya tidak berpikir mereka mengatakan bahwa mereka tidak dapat menyimpan akrilik saat tidak fokus, mereka mengatakan bahwa mereka telah memutuskan untuk tidak mengambil keputusan desain di seluruh perusahaan untuk menghemat masa pakai baterai.

Yeaaaa, yah... Transparansi/akrilik di terminal adalah jenis permen mata yang mungkin diharapkan pengguna untuk selalu ada di sana. Kalau tidak, tidak ada yang menginginkannya, karena memilikinya saat sedang fokus tidak banyak berpengaruh dalam hal itu.

Selain itu, pengguna terminal kemungkinan adalah pengguna tingkat lanjut, juga mempertimbangkan untuk benar-benar perlu mengedit JSON untuk mengaktifkannya, dan mungkin akan menyadari dampak baterai dalam beberapa cara.

Masih bisa menjadikannya opsional.

@ diri masa depan:

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

    • Tembak, ini menggunakan Win2D, yang saya tidak yakin bisa kita gunakan, karena ini 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

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

    • ini terlihat menjanjikan

  • https://stackoverflow.com/questions/43208841/how-to-use-acrylic-accent-createhostbackdropbrush-in-windows-10-creators-upd/44576160
  • Kemudian kita akan menulis beberapa kode
            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 tidak, bahkan dengan ini, kami mendapatkan konten yang telah diburamkan
    image

  • Yang membawa saya ke https://github.com/Microsoft/WindowsCompositionSamples/issues/202

  • Yang membawa saya lingkaran penuh ke penyelidikan yang sudah saya lakukan pada tahun lalu ini https://github.com/microsoft/terminal/issues/1753#issuecomment-508070516

Saya tidak menjanjikan apa-apa di sini, hanya meninggalkan catatan dari tab yang saya buka pagi ini

Tunggu, apakah saya membacanya dengan benar? Memiliki jendela yang sebagian transparan atau akrilik tanpa buram tidak dapat dilakukan karena masalah keamanan? Apa?

Saya, seperti banyak orang, sangat menginginkan/membutuhkan terminal semi-transparansi seperti yang telah digunakan di depan *nix selama berabad-abad. Apakah kita benar-benar harus melalui "rute screensaver", menangkap layar selama melukis, melukis tangkapan sebagai gambar latar belakang di jendela, dan kemudian melukis opacity di atasnya?

Maksud saya, seberapa mungkin jendela semi-transparan menjadi vektor serangan… bahkan keylogger yang sepenuhnya transparan akan menonaktifkan jendela. Benar-benar penasaran. Dan bingung. Tapi kebanyakan penasaran.

Memang, utas itu cukup tua, dari saat satu-satunya cara untuk membuat Akrilik adalah dari aplikasi UWP murni. UWP cukup terisolasi dari kemampuan membaca status proses lain pada sistem. Jika aplikasi dalam konteks ini dapat dengan mudah menyiapkan konten jendela di belakangnya, maka secara teoritis aplikasi tersebut dapat membaca konten apa pun yang berjalan pada sistem, dalam konteks _any_. Ini adalah sesuatu yang sama sekali tidak mungkin untuk aplikasi UWP.

Dunia telah banyak berubah sejak saat itu - ada aplikasi seperti Terminal yang menggunakan UWP XAML (dan akrilik) tetapi _bukan_ aplikasi UWP. Dalam model baru ini, mungkin saja kita melakukan sesuatu yang berbeda, kita hanya perlu melakukan lebih banyak penelitian.

Membaca sumber untuk AcrylicBrush , saya mungkin telah menemukan solusi. Tapi ambil ini dengan sebutir garam karena saya memiliki pengalaman minimal dengan pengembangan UI windows.
Sepertinya metode pabrik di Kuas Akrilik memiliki dukungan untuk latar belakang yang telah diburamkan sebelumnya, tampaknya di mana shell akan telah melakukannya, JIKA metode itu diekspos dan JIKA latar belakang yang tidak buram dilewatkan sebagai latar belakang yang telah diburamkan sebelumnya dan JIKA Saya tidak sepenuhnya melenceng di sini, pabrik mungkin tidak menambahkan efek blur sama sekali. Tetapi sekali lagi, saya memiliki peluang besar untuk salah 150% di sini, jadi, ambillah sesuka Anda.

OMG, diskusi ini sudah lebih dari satu tahun, tetapi Transparansi Kaca yang penting masih belum diterapkan. Ini adalah standar untuk terminal unix.

@alxkvx Seperti yang dibahas dalam utas ini dengan panjang lebar, ini adalah masalah yang sulit secara teknis, karenanya mengapa itu masih belum diimplementasikan. Jika Anda memiliki saran tentang _bagaimana_ ini dapat diterapkan dengan tumpukan UI kami, saya akan senang mendengarnya.

@alxkvx Seperti yang dibahas dalam utas ini dengan panjang lebar, ini adalah masalah yang sulit secara teknis, karenanya mengapa itu masih belum diimplementasikan. Jika Anda memiliki saran tentang _bagaimana_ ini dapat diterapkan dengan tumpukan UI kami, saya akan senang mendengarnya.

baik, saya tidak menggali masalah sebenarnya, Dan saya tidak mengerti mengapa tumpukan UI memiliki masalah dengan itu, saya tahu bahwa menggunakan terminal WSL saya bisa klik kanan > Properties > Set Opacity dan saya akan mendapatkan transparansi kaca. Bagi saya pribadi ini adalah fitur penting.

Kabur dan buram saat terminal tidak fokus hanya konyol. Siapa yang meminta ini? Saya akan tetap menggunakan cmd dan PowerShell.

@alxkvx Seperti yang dibahas dalam utas ini dengan panjang lebar, ini adalah masalah yang sulit secara teknis, karenanya mengapa itu masih belum diimplementasikan. Jika Anda memiliki saran tentang _bagaimana_ ini dapat diterapkan dengan tumpukan UI kami, saya akan senang mendengarnya.

baik, saya tidak menggali masalah sebenarnya, Dan saya tidak mengerti mengapa tumpukan UI memiliki masalah dengan itu, saya tahu bahwa menggunakan terminal WSL saya bisa klik kanan > Properties > Set Opacity dan saya akan mendapatkan transparansi kaca. Bagi saya pribadi ini adalah fitur penting.

Masalahnya adalah kerangka UI (UWP XAML) yang dibangun terminal Windows tidak mendukung transparansi penuh seperti aplikasi win32 atau WPF (mis. terminal wsl). Satu-satunya alat yang dapat mereka akses adalah Akrilik yang dimaksudkan kurang untuk transparansi dan lebih sebagai aksen desain. Menerapkannya di bawah tumpukan UI mereka akan membutuhkan solusi peretasan seperti komentar saya di atas atau pengerjaan ulang total tentang bagaimana konsol dirender (setidaknya itulah pemahaman saya, windows UI bukan bidang pengembangan saya)

Sunting: klarifikasi

@alxkvx Seperti yang dibahas dalam utas ini dengan panjang lebar, ini adalah masalah yang sulit secara teknis, karenanya mengapa itu masih belum diimplementasikan. Jika Anda memiliki saran tentang _bagaimana_ ini dapat diterapkan dengan tumpukan UI kami, saya akan senang mendengarnya.

baik, saya tidak menggali masalah sebenarnya, Dan saya tidak mengerti mengapa tumpukan UI memiliki masalah dengan itu, saya tahu bahwa menggunakan terminal WSL saya bisa klik kanan > Properties > Set Opacity dan saya akan mendapatkan transparansi kaca. Bagi saya pribadi ini adalah fitur penting.

Masalahnya adalah kerangka UI (XAML) yang dibangun terminal Windows tidak mendukung transparansi penuh seperti aplikasi win32 (mis. terminal wsl). Satu-satunya alat yang dapat mereka akses adalah Akrilik yang dimaksudkan kurang untuk transparansi dan lebih sebagai aksen desain. Menerapkannya di bawah tumpukan UI mereka akan membutuhkan solusi peretasan seperti komentar saya di atas atau pengerjaan ulang total tentang bagaimana konsol dirender (setidaknya itulah pemahaman saya, windows UI bukan bidang pengembangan saya)

Xaml memang mendukung transparansi, tetapi jendela UWP dan Kepulauan Xaml tidak.

Ketika Terminal dapat berpindah ke Desktop WinUI 3, dan dapat memanfaatkan HWND itu sendiri, maka Terminal akan dapat menerapkan Transparansi yang tidak kabur.

Akrilik itu sendiri akan ditunda untuk WinUI 3 - karena mereka harus mengerjakannya kembali saat mengekstraknya dari OS

Tunggu tidak, mari kita jelaskan beberapa kesalahpahaman - Kami sudah dapat mengakses HWND secara langsung, karena kami sudah menjadi aplikasi win32. Kami sedang bekerja dengan tim XAML dan komposisi untuk mencoba dan mencari solusi untuk ini. Dari pemahaman saya (saat ini), Pulau XAML selalu memiliki latar belakang buram, yang berarti bahwa kita tidak bisa hanya memiliki komponen transparan di XAML yang transparan sampai ke HWND. Saya tidak tahu apakah WinUI 3 akan secara ajaib menyelesaikan ini untuk kami, yang merupakan sesuatu yang perlu kami diskusikan lebih lanjut dengan tim itu. Untungnya, mereka bekerja di lorong sebelah kami (atau setidaknya mereka melakukannya ketika kami semua bekerja di gedung perkantoran), jadi diskusi ini tidak terlalu sulit

@ diri masa depan:

Saya cukup yakin Win2D mendukung c++/winrt (ditulis dalam c++!), tetapi meskipun bukan untuk kasus penggunaan ini, ada ini:

https://github.com/fobrs/Win2DinMFC

Juga, saya percaya akrilik kustom harus dimungkinkan karena saya dapat mencapai akrilik (dengan sudut membulat !!!) di WPF , dengan mengikuti contoh ini:

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

Dan posting ini sangat fenomenal:

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

Itu semua sangat membantu jika Anda menggunakan WPF XAML, tetapi kami menggunakan UWP XAML, yang sayangnya selalu memiliki latar belakang buram. Kami sedang bekerja dengan tim WinUI semoga pembatasan itu dilonggarkan untuk WinUI 3.0. Mungkin ada beberapa saat sebelum ada kemajuan lain dalam masalah ini, sementara kami mengerjakan spesifikasi teknis dengan mereka.

@zadjii-msft Jadi, Anda memberi tahu saya bahwa kontrol wpf terminal mungkin dapat mendukung akrilik yang dapat disesuaikan dengan blur akrilik, tetapi bukan yang UWP (untuk masa mendatang) ... kali aneh

Oh tidak, UWP XAML dapat mendukung akrilik dengan baik, hanya saja "opacity tradisional" (opacity tanpa efek akrilik) yang saat ini tidak dapat didukung oleh UWP XAML.

Saya ingin Anda melanjutkan diskusi ini di tempat lain (mungkin mengajukan masalah baru jika Anda memiliki masalah?) karena ini adalah utas untuk _transparansi tidak buram_. Kami sudah memiliki "akrilik" di kontrol UWP, dan membahas lebih lanjut "cara mendapatkan akrilik di kontrol UWP" adalah ... Maksud saya, seperti, mencoba menjelaskan kepada seekor kuda bagaimana itu bisa menjadi kuda jika itu benar-benar ingin?

@zadjii-msft @DHowett Maaf, saya tidak bermaksud begitu. Yang saya maksud dengan akrilik adalah

@zadjii-msft Saya ingin melakukan beberapa eksperimen, dapatkah Anda menunjukkan kepada saya di mana jendela hosting xaml/DesktopWindowXamlSource dibuat dalam kode Anda? Ini basis kode yang sangat besar

@AnuthaDev Ada di src/cascadia/WindowsTerminal/IslandWindow.cpp

Oke, setidaknya mungkin untuk wpf pasti:
Screenshot (363)

Mungkin jendela di IslandWindow.cpp dapat dibuat dengan WS_EX_NOREDIRECTIONBITMAP dan metode yang diikuti di sini dapat digunakan untuk membuat kuas akrilik yang tidak buram . Menggunakan createhostbackdropbrush() memperkenalkan blur secara otomatis, jadi createbackdropbrush() adalah satu-satunya pilihan. Atau mungkin tidak akan berhasil,... idk. Akan mencoba dan memberi tahu Anda ....

Sunting: Narator: Tidak berhasil!

Mungkin jendela di IslandWindow.cpp dapat dibuat dengan WS_EX_NOREDIRECTIONBITMAP dan metode yang diikuti di sini dapat digunakan untuk membuat sikat akrilik _non blur_. Menggunakan createhostbackdropbrush() memperkenalkan blur secara otomatis, jadi createbackdropbrush() adalah satu-satunya pilihan. Atau mungkin tidak akan berhasil,... idk. Akan mencoba dan memberi tahu Anda ...

Saya rasa tidak karena metode itu ada di bawah WPF. XAML digunakan dalam dua kerangka kerja yang berbeda WPF (metode itu) dan UWP (digunakan dalam WT). Saya telah mencari-cari di sumber untuk akrilik UWP, dan satu-satunya hal yang mungkin membuat transparansi tradisional berfungsi adalah solusi yang benar-benar Hakki di mana Anda pada dasarnya mengelabui OS dengan berpikir bahwa latar belakang sudah kabur sehingga tidak ada untuk menambahkan blur itu sendiri, tapi saya cukup pohon bahkan yang tidak kompatibel dengan pulau XAML.

@zadjii-msft @DHowett Oke, jadi inilah yang saya temukan:
Sangat mungkin untuk mendapatkan akrilik blur khusus di aplikasi c++ win32 menggunakan win2d:

(Kabur radius 1):
Screenshot (364)

NAMUN!! Anda tidak dapat melakukannya dengan pulau xaml. Seperti yang sudah Anda ketahui pasti akan ada latar belakang buram di balik xaml...

Untuk melakukan ini, kita perlu menggunakan apis komposisi dan merender ke DesktopWindowTarget hwnd .

Oleh karena itu, seperti yang ada saat ini, untuk mendapatkan transparansi akrilik yang tidak buram, kita perlu menghapus pulau xaml dan menggunakan ini sebagai ganti panel swapchain.

(Jika Anda sudah tahu ini, maaf telah membuang-buang waktu Anda ...)

Oleh karena itu, tidak ada transparansi tanpa perubahan arsitektur yang signifikan.

(Kesimpulan yang sudah jelas dan saya sama sekali tidak berkontribusi apa-apa😅😅)

Ya, jadi TLDR untuk siapa saja yang tidak ingin membaca semua diskusi sebelumnya pada dasarnya adalah bahwa kerangka kerja yang digunakan untuk terminal windows saat ini tidak mendukung fitur ini NAMUN pengembangan pada kerangka itu sedang berlangsung dan transparansi (sejauh yang saya mengerti itu) sedang dikerjakan. Jadi hanya sekali kerangka kerja (pulau XAML) mendukung transparansi, masalah ini dapat dimulai.

Ya, jadi TLDR untuk siapa saja yang tidak ingin membaca semua diskusi sebelumnya pada dasarnya adalah bahwa kerangka kerja yang digunakan untuk terminal windows saat ini tidak mendukung fitur ini NAMUN pengembangan pada kerangka itu sedang berlangsung dan transparansi (sejauh yang saya mengerti itu) sedang dikerjakan. Jadi hanya sekali kerangka kerja (pulau XAML) mendukung transparansi, masalah ini dapat dimulai.

saya bertanya-tanya mengapa fitur transparansi pada awalnya tidak disertakan dalam proyek itu dan tidak dipertimbangkan ketika mesin UI dipilih. Memiliki 10+ tahun bekerja dengan terminal Linux, semua memiliki fitur itu dan secara aktif digunakan oleh banyak pengguna. Aneh bagi saya.

Powershell & CMD memiliki opsi untuk mengatur transparansi. Saya mengerti bahwa teknologi yang digunakan berbeda tetapi banyak pengguna menggunakan konfigurasi transparansi

Powershell & CMD memiliki opsi untuk mengatur transparansi. Saya mengerti bahwa teknologi yang digunakan berbeda tetapi banyak pengguna menggunakan konfigurasi transparansi

ya, sama seperti terminal WSL

Transparansi CMD dan PWSH dapat dicapai dengan terminal ini, tetapi dari apa yang saya kumpulkan, sebagian besar orang (termasuk saya sendiri) tidak menginginkan versi transparansi itu, melainkan transparansi terminal seperti * nix, di mana hanya latar belakang yang tembus alih-alih semuanya, termasuk teks.

Juga, ada beberapa cara peretasan untuk memalsukan transparansi, dengan tangkapan layar RECT, melukis di atas terminal itu sendiri, dan kemudian mengecat warna semi transparan, tetapi bahkan dalam hal itu ada batasan dan jebakan.

Mungkin ini dapat diimplementasikan dengan membuat jendela di bawah (bersama?) jendela pulau xaml (dengan jendela induk disetel ke WS_EX_NOREDIRECTIONBITMAP) dan mengatur WS_CLIPSIBLINGS di atasnya, kemudian komposisi api dan interop directx dapat digunakan untuk merender konten dengan latar belakang tembus cahaya ( Seperti jadi ) ke jendela ini. Jadi, Anda tidak perlu menghapus pulau xaml dan hal-hal seperti scrollbar masih akan berfungsi, hanya bagian swapchainpanel yang akan diganti. Atau mungkin jika tidak berhasil, Anda bisa melubangi bagian swapchainpanel menggunakan HRGN, sehingga jendela komposisi di bawahnya menjadi terlihat. Seharusnya tidak ada regresi kinerja yang terlihat bergerak dari swapchainpanel ke hwnd (mungkin)

Masalah dengan mengejar solusi peretasan adalah bahwa itu adalah peretasan dan secara inheren rentan terhadap bug. WinUI 3 kemungkinan besar akan mendukung fungsionalitas yang diusulkan sehingga ada rencana untuk mengimplementasikannya, itu hanya permainan menunggu rantai alat resmi untuk mendukungnya. Pengembang telah mengkonfirmasi bahwa mereka berkolaborasi langsung dengan tim WinUI dalam hal ini.

(Kesimpulan yang sudah jelas dan saya sama sekali tidak berkontribusi apa-apa😅😅)

Saya tidak akan mengatakan bahwa Anda tidak berkontribusi apa-apa - saya selalu senang mendapat konfirmasi eksternal atas penelitian saya sendiri. Saya akan lebih bahagia jika Anda membuktikan saya salah dan menemukan cara yang efektif untuk melakukan ini

Seperti yang disebutkan sebelumnya di utas ini - Kami sedang bekerja dengan tim WinUI untuk menambahkan ini ke WinUI 3.0. Saya percaya ini sedang dilacak di https://github.com/microsoft/microsoft-ui-xaml/issues/1247 . Ini adalah jalan yang akan kami tempuh untuk menambahkan fitur ini ke Terminal, karena menjalankan solusi ini juga berarti menjalankan fitur platform dev penting untuk seluruh platform, yang akan membantu meningkatkan aplikasi lain di Windows juga.

Seperti yang disebutkan sebelumnya di utas ini - Kami sedang bekerja dengan tim WinUI untuk menambahkan ini ke WinUI 3.0. Saya percaya ini sedang dilacak di microsoft/microsoft-ui-xaml#1247 . Ini adalah jalan yang akan kami tempuh untuk menambahkan fitur ini ke Terminal, karena menjalankan solusi ini juga berarti menjalankan fitur platform dev penting untuk seluruh platform, yang akan membantu meningkatkan aplikasi lain di Windows juga.

Karena tim terminal telah memilih arah yang satu ini, haruskah tag "bantuan yang diinginkan" dihapus?

@tajetaje tangkapan yang bagus, terima kasih!

(Kesimpulan yang sudah jelas dan saya sama sekali tidak berkontribusi apa-apa😅😅)

Saya tidak akan mengatakan bahwa Anda tidak berkontribusi apa-apa - saya selalu senang mendapat konfirmasi eksternal atas penelitian saya sendiri. Saya akan lebih bahagia jika Anda membuktikan saya salah dan menemukan cara yang efektif untuk melakukan ini

Seperti yang disebutkan sebelumnya di utas ini - Kami sedang bekerja dengan tim WinUI untuk menambahkan ini ke WinUI 3.0. Saya percaya ini sedang dilacak di microsoft/microsoft-ui-xaml#1247 . Ini adalah jalan yang akan kami tempuh untuk menambahkan fitur ini ke Terminal, karena menjalankan solusi ini juga berarti menjalankan fitur platform dev penting untuk seluruh platform, yang akan membantu meningkatkan aplikasi lain di Windows juga.

@zadjii-msft, saya dapat melihat bagaimana WinUI akan berperan dalam hal ini, tetapi tidak yakin bagaimana masalah tanpa batas membawa kita ke sana. Dalam hal hasil aktual yang kebanyakan orang cari, saya pikir ini adalah penampilan yang bagus dari @mdtauk ( #743 ) dari apa yang mungkin:

image

(Kesimpulan yang sudah jelas dan saya sama sekali tidak berkontribusi apa-apa😅😅)

Saya tidak akan mengatakan bahwa Anda tidak berkontribusi apa-apa - saya selalu senang mendapat konfirmasi eksternal atas penelitian saya sendiri. Saya akan lebih bahagia jika Anda membuktikan saya salah dan menemukan cara yang efektif untuk melakukan ini
Seperti yang disebutkan sebelumnya di utas ini - Kami sedang bekerja dengan tim WinUI untuk menambahkan ini ke WinUI 3.0. Saya percaya ini sedang dilacak di microsoft/microsoft-ui-xaml#1247 . Ini adalah jalan yang akan kami tempuh untuk menambahkan fitur ini ke Terminal, karena menjalankan solusi ini juga berarti menjalankan fitur platform dev penting untuk seluruh platform, yang akan membantu meningkatkan aplikasi lain di Windows juga.

@zadjii-msft, saya dapat melihat bagaimana WinUI akan berperan dalam hal ini, tetapi tidak yakin bagaimana masalah tanpa batas membawa kita ke sana. Dalam hal hasil aktual yang kebanyakan orang cari, saya pikir ini adalah penampilan yang bagus dari @mdtauk ( #743 ) dari apa yang mungkin:

image

https://github.com/microsoft/microsoft-ui-xaml/issues/1247 melacak tanpa batas dan transparansi

Apakah halaman ini membantu?
0 / 5 - 0 peringkat