Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Bu kitap 2016 baharında yayımlanmıştır ve o zamandan beri güncellenmemiştir. Kitapta değerli kalan çok şey vardır, ancak bazı malzemeler eskidir ve bazı konular artık tamamen doğru veya eksiksiz değildir.
Xamarin.Forms Ekranda genel olarak veya Layout<View> türevi olan ebeveyni tarafından belirlenen bir konumda ve boyutta bir Layout görünüm görüntülenir. Dönüşüm, bu konumu, boyutu ve hatta yönlendirmeyi değiştirebilen bir Xamarin.Forms özelliktir.
Xamarin.Forms üç temel dönüşüm türünü destekler:
- Çeviri — öğeyi yatay veya dikey olarak kaydırma
- Ölçek — öğenin boyutunu değiştirme
- Döndürme — bir öğeyi bir nokta veya eksen etrafında döndürme
içinde Xamarin.Formsölçeklendirme izotropiktir; genişliği ve yüksekliği tekdüzen etkiler. Döndürme hem ekranın iki boyutlu yüzeyinde hem de 3B alanda desteklenir. Eğme (veya kalınlık) dönüşümü yoktur ve genelleştirilmiş matris dönüşümü yoktur.
Dönüştürmeler, sınıfı tarafından tanımlanan türün double VisualElement sekiz özelliğiyle desteklenir:
Tüm bu özellikler bağlanabilir özellikler tarafından desteklenir. Bunlar veri bağlamanın hedefleri ve stillendirilebilir. Bölüm 22. Animasyon, bu özelliklerin nasıl animasyonlu olabileceğini gösterir, ancak bu bölümdeki bazı örnekler zamanlayıcıyı kullanarak bunlara nasıl animasyon ekleyebileceğinizi Xamarin.Formsgösterir.
Dönüştürme özellikleri yalnızca öğenin nasıl işlendiğini etkiler ve öğenin düzende nasıl algılandığı etkilemez.
Çeviri dönüşümü
ve TranslationY özelliklerinin sıfır olmayan değerleri TranslationX bir öğeyi yatay veya dikey olarak değiştirir.
TranslationDemo programı, bir öğesinin ve TranslationY özelliklerini denetleen TranslationX iki Slider öğeyle bu özelliklerle Framedenemeler yapmanızı sağlar. Dönüşüm, bu Frameöğesinin tüm alt öğelerini de etkiler.
Metin efektleri
Çeviri özelliklerinin yaygın kullanımlarından biri, metnin işlenmesini biraz dengelemektir. Bu, TextOffsets örneğinde gösterilmiştir :
Bir diğer etki de BlockText örneğinde gösterildiği gibi bir Label 3B bloğuna benzeyecek şekilde bir öğesinin birden çok kopyasını işlemektir.
Atlamalar ve animasyonlar
ButtonJump örneği, her dokunulduğunda öğesini Button taşımak için çeviriyi kullanır, ancak birincil amaç düğmenin Button işlendiği konumda kullanıcı girişini aldığını göstermektir.
ButtonGlide örneği benzerdir ancak bir noktadan diğerine animasyon Button eklemek için zamanlayıcı kullanır.
Ölçek dönüşümü
Dönüştürme, Scale öğenin işlenmiş boyutunu artırabilir veya azaltabilir. Varsayılan değer 1 şeklindedir. 0 değeri öğenin görünmez olmasına neden olur. Negatif değerler öğenin 180 derece döndürülmüş gibi görünmesine neden olur. Scale özelliği öğesinin Width veya Height özelliklerini etkilemez. Bu değerler aynı kalır.
SimpleScaleDemo örneğini Scale kullanarak özelliğiyle denemeler yapabilirsiniz.
ButtonScaler örneği, bir Button özelliğinin animasyonunu Scale oluşturma ile özelliğin animasyonunu FontSize oluşturma arasındaki farkı gösterir. FontSize özelliği, öğesinin Button düzende nasıl algılanma şeklini Scale etkiler; özelliği etkilemez.
ScaleToSize örneği, sayfaya sığmaya devam ederken mümkün olduğunca büyük hale getirmek için bir Label öğeye uygulanan özelliği hesaplarScale.
Ölçeği tutturma
Önceki üç örnekte ölçeklendirilen öğelerin tümü, öğenin merkezine göre boyut olarak artmış veya azaltılmış. Başka bir deyişle, öğenin boyutu her yönde aynı şekilde artar veya azalır. Ölçeklendirme sırasında yalnızca öğenin merkezindeki nokta aynı konumda kalır.
ve AnchorY özelliklerini ayarlayarak ölçeklendirmenin merkezini AnchorX değiştirebilirsiniz. Bu özellikler öğenin kendisine göredir. için AnchorX, 0 değeri öğenin sol tarafına, 1 değeri de sağ tarafa başvurur. için benzer şekilde AnchorY, 0 en üstte, 1 ise alttadır. Her iki özelliğin de varsayılan değerleri 0,5'tir ve bu da orta değerdir.
AnchoredScaleDemo örneği hem ve AnchorY özellikleriyle hem de Scale özelliğiyle AnchorX denemeler yapmanızı sağlar.
iOS'ta ve AnchorY özelliklerinin varsayılan olmayan değerlerinin AnchorX kullanılması genellikle telefon yönlendirme değişiklikleriyle uyumsuzdur.
Döndürme dönüşümü
Rotation özelliği derece cinsinden belirtilir ve ve AnchorYtarafından AnchorX tanımlanan öğenin bir noktası etrafında saat yönünde döndürmeyi gösterir. PlaneRotationDemo, bu üç özelliği denemenize olanak tanır.
Döndürülmüş metin efektleri
BoxViewCircle örneği, 64 küçük döndürülmüş BoxView öğe kullanarak bir daire çizmek için gereken matematiği gösterir.
RotatedText örneği, aynı metin dizesi döndürülmüş birden çok Label öğeyi uçlar gibi görünecek şekilde görüntüler.
CircularText örneği, daire içinde kaydırılır gibi görünen bir metin dizesi görüntüler.
Analog saat
Book.Toolkit kitaplığı, bir AnalogClockViewModel saatin elleri için açıları hesaplayan bir sınıf içerir.Xamarin.Forms ViewModel'de platform bağımlılıklarını önlemek için sınıfı, yeni DateTime bir değer bulmak için zamanlayıcı yerine kullanırTask.Delay.
Ayrıca Book.Toolkit içinde Xamarin.Formsikinci bir SecondTickConverter açıyı en yakın saniyeye yuvarlayan ve sunan bir sınıf IValueConverter yer alır.
MinimalBoxViewClock, analog saat çizmek için üç dönen BoxView öğe kullanır.
BoxViewClock, saat kadranının etrafındaki değer çizgileri ve uçlarından biraz uzaklık döndüren eller de dahil olmak üzere daha kapsamlı grafikler için kullanırBoxView:
Book.Toolkit'tekiXamarin.Forms bir SecondBackEaseConverter sınıfa ek olarak, ikinci elin ileri atlamadan önce biraz geri çekilmesine ve ardından doğru konumuna geri dönmesine neden olur.
Dikey kaydırıcılar mı?
VerticalSliders örneği, öğelerin 90 derece döndürülebileceğini ve hala çalışabildiğini gösterirSlider. Ancak, bu döndürülmüş Slider öğeleri konumlandırmak zordur çünkü düzende hala yatay görünürler.
3B-ish döndürmeleri
özelliği bir RotationX öğeyi 3B X ekseni etrafında döndürüyor gibi görünür, böylece öğenin üst ve alt kısmı görüntüleyiciye doğru veya görüntüleyiciden uzağa doğru hareket eder. Benzer şekilde, öğesinin RotationY sol ve sağ yanlarının görüntüleyiciye doğru veya görüntüleyiciden uzağa doğru hareket etmesini sağlamak için bir öğeyi Y ekseni etrafında döndürüyor gibi görünüyor.
AnchorX özelliği etkilerRotationY, ancak etkilemezRotationX. AnchorY özelliği etkilerRotationX, ancak etkilemezRotationY. Bu özelliklerin etkileşimlerini keşfetmek için ThreeDeeRotationDemo örneğini deneyebilirsiniz.
tarafından ima edilen Xamarin.Forms 3B koordinat sistemi solaktır. Sol elinizin işaretleyicisini X koordinatlarını artırma yönünde (sağda) ve orta parmağınızı Y koordinatlarını artırma yönünde (aşağı) yönlendirirseniz, başparmak noktanız Z koordinatlarını artırma yönünde (ekranın dışına) işaret eder.
Ayrıca, üç eksenden herhangi biri için, sol parmağınızı değerleri artırma yönünde yönlendirirseniz, parmaklarınızın eğrisi pozitif dönüş açıları için döndürme yönünü gösterir.

