Aracılığıyla paylaş


Efektlere Giriş

Efektler, her platformdaki yerel denetimlerin özelleştirilmesine olanak sağlar ve genellikle küçük stil değişiklikleri için kullanılır. Bu makale efektlere giriş niteliğindedir, efektlerle özel işleyiciler arasındaki sınırı özetler ve PlatformEffect sınıfını açıklar.

Xamarin.FormsSayfalar, Düzenler ve Denetimler , platformlar arası mobil kullanıcı arabirimlerini açıklamak için ortak bir API sunar. Her sayfa, düzen ve denetim, her platformda farklı bir şekilde işlenir ve böylece yerel bir denetim (gösterime Xamarin.Forms karşılık gelen) oluşturan, bunu ekranda yerleştiren ve paylaşılan kodda belirtilen davranışı ekleyen bir Renderer sınıf kullanılır.

Geliştiriciler, kendi özel Renderer sınıflarını uygulayarak denetimlerin görünümünü ve/veya davranışını özelleştirebilir. Ancak, basit bir denetim özelleştirmesi gerçekleştirmek için özel işleyici sınıfı uygulamak genellikle ağır bir yanıttır. Efektler bu işlemi basitleştirerek her platformdaki yerel denetimlerin daha kolay özelleştirilmesine olanak sağlar.

Efektler, denetim alt sınıflandırılarak PlatformEffect platforma özgü projelerde oluşturulur ve ardından efektler bir .NET Standart kitaplığında veya Paylaşılan Kitaplık projesinde uygun bir Xamarin.Forms denetime eklenerek kullanılır.

Özel oluşturucu üzerinde neden efekt kullanmalısınız?

Efektler bir denetimin özelleştirmesini basitleştirir, yeniden kullanılabilir ve yeniden kullanımı daha da artırmak için parametrelendirilebilir.

Bir etkiyle elde edilebilecek her şey özel işleyici ile de gerçekleştirilebilir. Ancak, özel işleyiciler efektlerden daha fazla esneklik ve özelleştirme sunar. Aşağıdaki yönergelerde, özel işleyici üzerinde bir etkinin seçileceği durumlar listelenir:

  • Platforma özgü bir denetimin özellikleri değiştirildiğinde istenen sonuca ulaşacak bir etki önerilir.
  • Platforma özgü bir denetimin yöntemlerini geçersiz kılmaya ihtiyaç duyulduğunda özel işleyici gerekir.
  • Bir denetimi uygulayan platforma özgü denetimin değiştirilmesi gerektiğinde özel işleyici Xamarin.Forms gerekir.

PlatformEffect Sınıfını Alt Sınıflama

Aşağıdaki tabloda, her platformdaki sınıfın PlatformEffect ad alanı ve özelliklerinin türleri listelenmiştir:

Platform Ad Alanı Kapsayıcı Control
iOS Xamarin.Forms. Platform.iOS UIView UIView
Android Xamarin.Forms. Platform.Android ViewGroup Görünüm
Evrensel Windows Platformu (UWP) Xamarin.Forms. Platform.UWP FrameworkElement FrameworkElement

Platforma özgü PlatformEffect her sınıf aşağıdaki özellikleri kullanıma sunar:

  • Container – düzeni uygulamak için kullanılan platforma özgü denetime başvurur.
  • Control – denetimi uygulamak için kullanılan platforma özgü denetime başvurur Xamarin.Forms .
  • Element – işlenen denetime başvurur Xamarin.Forms .

Efektler, herhangi bir öğeye eklenebileceği için bağlı oldukları kapsayıcı, denetim veya öğe hakkında tür bilgilerine sahip değildir. Bu nedenle, bir etki desteklemediği bir öğeye eklendiğinde düzgün bir şekilde azalmalı veya bir özel durum oluşturmalıdır. Ancak, Container, Controlve Element özellikleri uygulama türlerine yayınlanabilir. Bu türler hakkında daha fazla bilgi için bkz . İşleyici Temel Sınıfları ve Yerel Denetimler.

Platforma özgü PlatformEffect her sınıf, bir etkiyi uygulamak için geçersiz kılınması gereken aşağıdaki yöntemleri kullanıma sunar:

  • OnAttached – bir efekt denetime Xamarin.Forms eklendiğinde çağrılır. Platforma özgü her efekt sınıfında bu yöntemin geçersiz kılınmış bir sürümü, etkinin belirtilen Xamarin.Forms denetime uygulanamaması durumunda özel durum işlemenin yanı sıra denetimi özelleştirmenin gerçekleştirileceği yerdir.
  • OnDetached – bir efekt denetimden Xamarin.Forms çıkarıldığında çağrılır. Platforma özgü her efekt sınıfında bu yöntemin geçersiz kılınmış bir sürümü, bir olay işleyicisinin kaydını kaldırma gibi herhangi bir efekt temizleme işleminin gerçekleştirilebileceğiniz yerdir.

Buna ek olarak, PlatformEffect yöntemi de OnElementPropertyChanged geçersiz kılınabilir. Öğesinin bir özelliği değiştiğinde bu yöntem çağrılır. Platforma özgü her efekt sınıfında bu yöntemin geçersiz kılınmış bir sürümü, denetimdeki Xamarin.Forms bağlanabilir özellik değişikliklerine yanıt verilebilen yerdir. Bu geçersiz kılma birçok kez çağrılabildiği için, değiştirilen özellik için her zaman bir denetim yapılmalıdır.