Neden bu pencerenin köşeleri köşeli?


24

Aero temalı Windows 7'de, Notepad ++ 'ın Tercihler penceresinde kare köşeler, sistem menü simgesi yok, kapat düğmesi ve daha koyu renkli bir 1pxkenarlık var. Bu pencerenin bir AlwaysOnTopözelliği de var .

notepad ++
(Pencereyi genişliğine uyacak şekilde yeniden boyutlandırdım 640px.)

İlginçtir ki, AutoHotkey'i kullanarak bu stili diğer pencerelere kopyalayabilirsiniz . Öyleyse, kirli hileler olmadığı anlaşılıyor. Ancak, bu pencere tarzını başka hiçbir yerde gördüğümü sanmıyorum.

Bu tarz Microsoft tarafından kınandı mı? Bu tür bir pencerenin bir adı var mı?


Meraklı için: Normal vs "Kare"

normal   hesap makinesi


.NET çerçevesinin varsayılan olarak köşeleri yuvarlatılmış bir çerçeve vereceğini ve hiç kimsenin onu değiştirmek gibi hissetmediğini düşünüyorum (ancak emin değilim).
soandos

Çünkü Apple'ın köşelerde bir patenti var.
Chloe,

Yanıtlar:


37

Buna bir araç penceresi (bar) denir . WS_EX_TOOLWINDOWGenişletilmiş stile sahip olan pencereler, bir sistem menüsü veya küçültülmüş / maksimize kutuları ve küçük bir başlık çubuğu olmadan oluşturulur. Windows XP ve üzeri (temaları destekleyen), araç pencereleri genellikle yuvarlatılmış köşeler olmadan oluşturulur (en azından varsayılan temalarla).

Bu stil genellikle araç çubukları için kullanılır (Şekil 1). Bir araç çubuğunu, araç çubuklarını yeniden düzenlemenizi sağlayan bir programdan sürükleyerek görebilirsiniz. Söz konusu olana benzeyen bir pencere olduğuna dikkat edin. Windows Gezgini, temelde aynı olan masa bantları için de kullanır (Şekil 2). Bunları bir klasörü ekran kenarlarından birine sürükleyerek görebilirsiniz, ardından ortaya çıkan araç çubuğunu / masa bandını masaüstüne sürükleyin.

Açıkçası, bazı programlar tarzı başka amaçlar için kullanıyorlar, çoğunlukla ana programın çocuğu olan bir tür modal, geçici diyalog yaratmanın bir yolu olarak.

Not: Bunun birkaç etkisi vardır (ilk ikisi genellikle standart olmayan kullanımın nedenleridir ):

  • Bu stille bir pencere / iletişim kutusu görev çubuğunda bir düğme alamaz
  • Diyaloğa Alt+ Tabbing yapmayı önler
  • Aynı zamanda Alt+ PrtScr'nın sadece diyalogu ele geçirmesini önler ; tüm ebeveyn programı penceresi yakalanır.

Şekil 1: MSPaint araç çubuğu penceresi

görüntü tanımını buraya girin

Şekil 2: Windows Gezgini deskband

görüntü tanımını buraya girin


Aha! Bu mantıklı. :)
iglvzx

Alt+ PrintScreenWindows 7'de Not Defteri ++ Tercihleri ​​iletişim kutusuyla yalnızca iletişim kutusunu yakalar.
Bob

17

Bu, bu pencere stilinin adını ve .NET'te bulunan seçeneklerin ayrıntılarını verir; bkz. @ Synetech'in bu pencere stilinin orijinal amacı için mükemmel cevabı, böyle bir iletişim kutusu için kullanılmasının sebepleri ve Notepad ++ gibi yönetilmeyen Windows programlarında uygulanması.


Pencerenin köşeleri kare şeklindedir ve Notepad ++ 'nın tasarımcılarından / programcılarından biri belirli bir pencere stili kullanmaya karar verdiğinden dolayı öyle görünür. Synetech, bu pencere stilinin avantajlarını anlatıyor.

.NET / Visual Studio'da, bu sınıfın FormBorderStyleözelliğinde ayarlanır System.Windows.Forms.Form. Spesifik olarak, öyle FixedToolWindow. Olası değerler System.Windows.Forms.FormBorderStylenumaralandırmadadır.

ToolWindowDüz dan biraz farklı tüm değerler varsayılan çalışma ile .NET s WS_EX_TOOLWINDOW, Windows API olsa onlar aynı görünüyor. Testi ile, ben onlar belirledik do görev çubuğunda görünür ve onlar do görünür Alt+ Tabformu mülkiyet sürece görev değiştirici ShowInTaskbarolarak ayarlanır false. ShowInTaskbarhem görev çubuğunda hem de s Alt+ Tabiçin görünürlüğü etkiler ToolWindow, ancak yalnızca diğerleri için görev çubuğunu etkiler .

Bu arada, simgeyi / simge durumuna küçültme / geri yükleme / simge durumuna küçültme düğmelerini daha genel pencere stillerinden kaldırmak da mümkündür, ancak bunları ToolWindows öğelerine eklemek mümkün görünmemektedir . Normal pencereleri görev çubuğundan gizlemek de mümkündür.

WS_EX_TOOLWINDOWSöyleyebileceğim kadarıyla, sadece işlevsel avantaj teklifleri, pencerenin Alt+ olarak görünmemesi Tab.


.NET pencere stillerini karşılaştıran bazı ekran görüntüleri ekledim. Bunlar doğrudan Not Defteri ++, ne de diğer yönetilmeyen programlar tarafından kullanılmayan, fakat edilir böylece, Microsoft tarafından adlandırılmış ...

Olası değerler FormBorderStyle:

İlk görüntü, Aero etkinleştirilmiş çalışan programın ekran görüntüsü, ikincisi ise Visual Studio tasarımcısı görünümünden (Aero değil).
Tam boy sürümleri için resimlerin üzerine tıklayınız
Açıklamalar , numaralandırmadaki MSDN makalesinden alınmıştır FormBorderStyle.

  • None

    Sınır yok.

Screenshot_Aero Screenshot_NonAero

  • FixedSingle

    Sabit, tek çizgi kenarlık.

Screenshot_Aero Screenshot_NonAero

  • Fixed3D

    Sabit, üç boyutlu bir sınır.

Screenshot_Aero Screenshot_NonAero

  • FixedDialog

    Kalın, sabit bir iletişim stili sınırı.

Screenshot_Aero Screenshot_NonAero

  • Sizable (varsayılan)

    Yeniden boyutlandırılabilir bir sınır.

Screenshot_Aero Screenshot_NonAero

  • FixedToolWindow

    Yeniden boyutlandırılamayan bir araç penceresi sınırı. Bir araç penceresi görev çubuğunda veya kullanıcı ALT+ tuşuna bastığında görünen pencerede görünmez TAB. FixedToolWindowNormalde belirtilen formlar görev çubuğunda gösterilmese de , varsayılan değeri olduğundan , ShowInTaskbarözelliğin ayarlandığından da emin olmalısınız .falsetrue

Screenshot_Aero Screenshot_NonAero

  • SizableToolWindow

    Yeniden boyutlandırılabilir bir araç penceresi sınırı. Bir araç penceresi görev çubuğunda veya kullanıcı ALT+ tuşuna bastığında görünen pencerede görünmez TAB.

Screenshot_Aero Screenshot_NonAero


Evet! Bunun hakkında konuşuyorduk.
avirk

Yönetilen / yönetilmeyen veya yerel / .NET koduyla ilgisi yoktur. Bu, Windows'un pencereleri WS_EX_TOOLWINDOWstille nasıl biçimlendirdiği ile ilgilidir . NET basitçe diğer adlar FixedToolWindowiçin WS_EX_TOOLWINDOWve SizableToolWindowiçin WS_EX_TOOLWINDOW|WS_THICKFRAME. Alınma ama bu cevap aslında soruyu cevaplamıyor ya da sorulan davranışı açıklamıyor, sadece .NET'te kullanılan farklı pencere stillerinin bir listesi / kaynağı .
Synetech

@Synetech Kodun yönetilip yönetilmeyeceği ile ilgisi olmadığını biliyorum, sadece farkları ekran görüntüleri ile .NET kullandığı ve mevcut diğer seçenekleri veririm diye düşündüm. Does this type of window have a name?Bu kadarını cevaplıyor, en azından bir .NET programcısının bakış açısından. Ve açıklama? Çünkü programcı kullanmaktan hoşlanıyordu. Muhtemelen istenen efektleri listeledik. Bu konuda. MS tarafından tavsiye edilmiş veya kınandı, hiçbir fikrim yok. Şahsen, açıklamak için takdire şayan bir iş çıkardığını düşünüyorum.
Bob

Düzenlemeler bunun için var.
Synetech

Bu nedir @ Synetech?
Bob
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.