Aracılığıyla paylaş


Görsel Stiller ile Denetimleri İşleme

.NET Framework, işletim sistemlerinde bunları destekleyen görsel stilleri kullanan işleme denetimleri ve diğer Windows kullanıcı arabirimi (UI) öğeleri için destek sağlar. Bu konuda, işletim sisteminin geçerli görsel stiliyle denetimleri ve diğer kullanıcı arabirimi öğelerini işlemek için .NET Framework'teki çeşitli destek düzeyleri açıklanmaktadır.

Ortak Denetimler için İşleme Sınıfları

Bir denetimin işlenmesi, denetimin kullanıcı arayüzünün çizilmesi anlamına gelir. System.Windows.Forms ad alanı, bazı yaygın Windows Forms denetimlerini işlemek için ControlPaint sınıfını sağlar. Ancak, bu sınıf denetimleri klasik Windows stilinde çizer ve bu da görsel stillerin etkinleştirildiği uygulamalarda özel denetimler çizerken tutarlı bir kullanıcı arabirimi deneyimini korumayı zorlaştırabilir.

.NET Framework 2.0, ortak denetimlerin bölümlerini ve durumlarını görsel stillerle işleyen System.Windows.Forms ad alanında sınıflar içerir. Bu sınıfların her biri, denetimi veya belirli bir durumdaki denetimin bölümlerini işletim sisteminin geçerli görsel stiliyle çizme yöntemlerini içerir static .

Bu sınıflardan bazıları, görsel stillerin kullanılabilir olup olmadığına bakılmaksızın ilgili denetimi çizmek için tasarlanmıştır. Görsel stiller etkinleştirilirse, sınıf üyeleri görsel stilleriyle ilgili denetimi çizer; görsel stiller devre dışı bırakılırsa, sınıf üyeleri denetimi klasik Windows stilinde çizer. Bu sınıflar şunlardır:

Diğer sınıflar yalnızca görsel stiller kullanılabilir olduğunda ilgili denetimi çizebilir ve görsel stilleri devre dışı bırakılırsa üyeleri bir özel durum oluşturur. Bu sınıflar şunlardır:

Denetim çizmek için bu sınıfları kullanma hakkında daha fazla bilgi için bkz Nasıl yapılır: Denetim İşleme Sınıfı Kullanma.

Görsel Stil Öğesi ve İşleme Sınıfları

System.Windows.Forms.VisualStyles ad alanı, görsel stiller tarafından desteklenen herhangi bir denetim veya kullanıcı arabirimi öğesini çizmek ve hakkında bilgi almak için kullanılabilecek sınıflar içerir. Desteklenen denetimler, ad alanında System.Windows.Forms işleme sınıfına sahip ortak denetimlerin (önceki bölüme bakın) yanı sıra sekme denetimleri ve rebar denetimleri gibi diğer denetimleri içerir. Desteklenen kullanıcı arabirimi öğeleri arasında Başlat menüsünün bölümleri, görev çubuğu ve pencerelerin istemci olmayan alanı yer alır.

Ad alanının ana sınıfları System.Windows.Forms.VisualStyles, VisualStyleElement ve VisualStyleRenderer'dir. VisualStyleElement , görsel stiller tarafından desteklenen herhangi bir denetim veya kullanıcı arabirimi öğesini tanımlamaya yönelik bir temel sınıftır. Buna ek olarak VisualStyleElement, System.Windows.Forms.VisualStyles ad alanı, görsel stiller tarafından desteklenen bir denetimin, denetim bölümünün veya diğer kullanıcı arabirimi öğelerinin her durumu için bir VisualStyleElement döndüren static özelliklere sahip birçok iç içe sınıfı VisualStyleElement içerir.

VisualStyleRenderer, işletim sisteminin mevcut görsel stili tarafından tanımlanan her bir VisualStyleElement hakkında bilgi almayı ve çizim yapmayı sağlayan yöntemleri sunar. Bir öğe hakkında alınabilecek bilgiler varsayılan boyutunu, arka plan türünü ve renk tanımlarını içerir. VisualStyleRenderer Windows Platform SDK'sının Windows Shell bölümündeki görsel stiller (UxTheme) API'sinin işlevselliğini sarmalar. Daha fazla bilgi için bkz. Görsel Stilleri Etkinleştirme.

VisualStyleRenderer ve VisualStyleElement kullanımı hakkında daha fazla bilgi için bkz: Nasıl yapılır: Görsel Stil Öğesi İşleme.

Görsel Stilleri Etkinleştirme

.NET Framework sürüm 1.0 için yazılmış bir uygulamanın görsel stillerini etkinleştirmek için programcıların denetimleri çizmek için ComCtl32.dll sürüm 6 veya sonraki bir sürümün kullanılacağını belirten bir uygulama bildirimi içermesi gerekir. .NET Framework sürüm 1.1 veya daha sonraki bir sürümü ile oluşturulan uygulamalar, Application.EnableVisualStyles sınıfının Application yöntemini kullanabilir.

Görsel Stiller Desteği Kontrol Ediliyor

RenderWithVisualStyles sınıfının Application özelliği, geçerli uygulamanın denetimleri görsel stillerle çizip çizmediğini gösterir. Özel bir denetimi boyarken, denetiminizi görsel stillerle mi yoksa görsel stillersiz mi işlemeniz gerektiğini belirlemek için RenderWithVisualStyles değerini kontrol edebilirsiniz. Aşağıdaki tablo, RenderWithVisualStyles'nin true değerini döndürmesi için var olması gereken dört koşulu listelemektedir.

Koşul Notlar
İşletim sistemi görsel stilleri destekler. Bu koşulu ayrı olarak doğrulamak için IsSupportedByOS sınıfının VisualStyleInformation özelliğini kullanın.
Kullanıcı, işletim sisteminde görsel stilleri etkinleştirmiştir. Bu koşulu ayrı olarak doğrulamak için IsEnabledByUser sınıfının VisualStyleInformation özelliğini kullanın.
Görsel stiller uygulamada etkinleştirilir. Görsel stiller, Application.EnableVisualStyles yöntemini çağırarak veya denetimleri çizmek için ComCtl32.dll sürüm 6 veya daha yeni bir sürümün kullanılacağını belirten bir uygulama bildirimi aracılığıyla bir uygulamada etkinleştirilebilir.
Uygulama pencerelerinin istemci alanını çizmek için görsel stiller kullanılıyor. Bu koşulu ayrı olarak doğrulamak için, VisualStyleState sınıfının Application özelliğini kullanın ve VisualStyleState.ClientAreaEnabled veya VisualStyleState.ClientAndNonClientAreasEnabled değerine sahip olduğunu doğrulayın.

Bir kullanıcının görsel stillerini ne zaman etkinleştirdiğini veya devre dışı bırakdığını veya bir görsel stilinden diğerine geçişini belirlemek için UserPreferenceCategory.VisualStyleSystemEvents.UserPreferenceChanging , veya SystemEvents.UserPreferenceChanged olaylarının işleyicilerindeki değeri denetleyin.

Önemli

Kullanıcı görsel stilleri etkinleştirdiğinde veya değiştirdiğinde bir denetim veya UI öğesini işlemek için VisualStyleRenderer kullanmak istiyorsanız, bunu UserPreferenceChanged olayını işlerken değil, UserPreferenceChanging olayını işlerken yaptığınızdan emin olun. VisualStyleRenderer sınıfını UserPreferenceChanging kullanarak işlediğinizde bir istisna fırlatılır.

Ayrıca bakınız