Aracılığıyla paylaş


Bölüm 3'ün Özeti. Metnin ayrıntılı incelemesi

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.

Bu bölümde renk, yazı tipleri ve biçimlendirme de dahil olmak üzere görünümü daha ayrıntılı bir şekilde inceleyebilirsiniz Label .

Paragrafları kaydırma

özelliği uzun metin içerdiğinde, Label Baskervilles örneğinde gösterildiği gibi otomatik olarak birden çok satıra kaydırılır.Label Text Uzun çizgi için '\u2014' gibi Unicode kodları veya yeni bir satıra bölmek için '\r' gibi C# karakterleri ekleyebilirsiniz.

öğesinin HorizontalOptions Label ve VerticalOptions özellikleri olarak LayoutOptions.Fillayarlandığında, öğesinin Label genel boyutu kapsayıcısının kullanılabilir hale getirdiği alan tarafından yönetilir. Kısıtlandığı Labelsöylenir. boyutu Label kapsayıcısının boyutudur.

HorizontalOptions ve VerticalOptions özellikleri dışında LayoutOptions.Filldeğerlere ayarlandığında, boyutunun Label boyutu, kapsayıcısının için kullanılabilir hale getirdiği boyuta kadar metni işlemek için Labelgereken alana göre yönetilir. Kısıtlanmamış Label olduğu söylenir ve kendi boyutunu belirler.

(Not: Kısıtlanmamış ve kısıtlanmamış terimler, kısıtlanmamış bir görünüm genellikle kısıtlanmış görünümden daha küçük olduğundan sezgisel olmayabilir. Ayrıca, bu terimler kitabın ilk bölümlerinde tutarlı olarak kullanılmaz.)

gibi bir Label görünüm bir boyutta kısıtlanabilir ve diğerinde kısıtlanamaz. A Label , metni yalnızca yatay olarak kısıtlanmışsa birden çok satıra kaydıracaktır.

Label bir kısıtlanmışsa, metin için gerekenden çok daha fazla alan kaplayabilir. Metin, öğesinin genel alanı Labeliçinde konumlandırılabilir. Paragrafın HorizontalTextAlignment tüm satırlarının TextAlignment hizalamasını denetlemek için özelliğini numaralandırmanın (Start, Centerveya End) bir üyesine ayarlayın. Varsayılan değerdir Start ve metni sola hizalar.

VerticalTextAlignment metni tarafından kaplanmış alanın en üstüne, ortasına veya altına konumlandırmak için özelliğini numaralandırmanın bir üyesi TextAlignment olarak Labelayarlayın.

LineBreakMode Bir paragraf sonu veya kesilmiş birden çok satırın LineBreakMode nasıl kesileceğini denetlemek için özelliğini sabit listesi (WordWrap, CharacterWrap, NoWrap, HeadTruncation, MiddleTruncationTailTruncationveya ) üyesi olarak ayarlayın.

Metin ve arka plan renkleri

TextColor Metin ve arka plan rengini denetlemek için Color ve BackgroundColor özelliklerini Label olarak ayarlayın.

, BackgroundColor tarafından işgal edilen tüm alanın arka planı için Labelgeçerlidir. ve VerticalOptions özelliklerine HorizontalOptions bağlı olarak, bu boyut metni görüntülemek için gereken alandan çok daha büyük olabilir. Çeşitli , , VerticalOptionsHorizontalExeAlignmentve değerleriyle denemeler HorizontalOptionsyapmak ve VerticalTextAlignment bunların boyutunu ve konumunu Labelve içindeki Labelmetnin boyutunu ve konumunu nasıl etkilediğini görmek için renk kullanabilirsiniz.

Renk yapısı

Yapı, Color renkleri Kırmızı-Yeşil-Mavi (RGB) değerleri veya Hue-Doygunluk-Parlaklık (HSL) değerleri olarak veya bir renk adıyla belirtmenize olanak tanır. Saydamlığı göstermek için bir Alfa kanalı da kullanılabilir.

Şunları belirtmek için bir Color oluşturucu kullanın:

Bağımsız değişkenler 0 ile 1 arasında değişen değerlerdir double .

Değer oluşturmak Color için birkaç statik yöntem de kullanabilirsiniz:

  • Color.FromRgb0 ila 1 RGB değerleri için double
  • Color.FromRgb 0 ile 255 tamsayı RGB değerleri için
  • Color.FromRgbasaydamlık içeren RGB değerleri için double
  • Color.FromRgba saydamlık içeren tamsayı RGB değerleri için
  • Color.FromHslasaydamlık içeren HSL değerleri için double
  • Color.FromUint olarak hesaplanan bir uint değer için (B + 256 * (G + 256 * (R + 256 * A)))
  • Color.FromHexstring"#AARRGGBB" veya "#RRGGBB" ya da "#ARGB" ya da "#RGB" biçiminde onaltılık basamak biçimi için, burada her harf alfa, kırmızı, yeşil ve mavi kanalların onaltılık basamaklarına karşılık gelir. Bu yöntem, Bölüm 7, XAML ve kod arasında açıklandığı gibi XAML renk dönüştürmeleri için birincil olarak kullanılır.

Bir değer oluşturulduktan Color sonra sabittir. Rengin özellikleri aşağıdaki özelliklerden elde edilebilir:

Bunların tümü double 0 ile 1 arasında değişen değerlerdir.

Color ayrıca ortak renkler için 240 genel statik salt okunur alan tanımlar. Kitap yazıldığı sırada yalnızca 17 ortak renk vardı.

Başka bir genel statik salt okunur alan, tüm renk kanallarının sıfır olarak ayarlandığı bir renk tanımlar:

Çeşitli örnek yöntemleri, yeni bir renk oluşturmak için var olan bir rengin değiştirilmesine izin verir:

Son olarak, iki statik salt okunur özellik özel renk değerini tanımlar:

Color.Default , platformun renk düzenini zorunlu kılmaya yöneliktir ve sonuç olarak farklı platformlardaki farklı bağlamlarda farklı anlamlara sahiptir. Varsayılan olarak platform renk düzenleri şunlardır:

  • iOS: Açık arka planda koyu metin
  • Android: Koyu arka planda açık metin (kitapta) veya açık arka planda koyu metin (örnek kod deposunun ana dalında AppCompat aracılığıyla Malzeme Tasarımı için)
  • UWP: Açık arka planda koyu metin

Değer, Color.Accent koyu veya açık arka planda görünen platforma özgü (ve bazen kullanıcı tarafından seçilebilen) bir renkle sonuçlanır.

Uygulama renk düzenini değiştirme

Çeşitli platformlar, yukarıdaki listede gösterildiği gibi varsayılan bir renk düzenine sahiptir.

Android'i hedeflerken, Android.Manifest.xml dosyasında açık tema belirterek koyu ışık düzenine geçmek mümkündür.

Windows platformları için renk teması normalde kullanıcı tarafından seçilir, ancak platforma veya Dark platformun App.xaml dosyasına ayarlanmış Light bir RequestedTheme öznitelik ekleyebilirsiniz. Varsayılan olarak, UWP projesindeki App.xaml dosyası olarak Lightayarlanmış bir RequestedTheme öznitelik içerir.

Yazı tipi boyutları ve öznitelikleri

FontFamily Yazı tipi ailesi seçmek için özelliğini Label "Times Roman" gibi bir dize olarak ayarlayın. Ancak, belirli bir platformda desteklenen bir yazı tipi ailesi belirtmeniz gerekir ve platformlar bu konuda tutarsızdır.

yazı tipinin FontSize yaklaşık yüksekliğini belirtmek için özelliğini Label olarak double ayarlayın. Yazı tipi boyutlarını akıllı bir şekilde seçme hakkında daha fazla bilgi için bkz . 5. Bölüm, Boyutlarla Ilgilenme.

Alternatif olarak önceden ayarlanmış platforma bağımlı yazı tipi boyutlarından birini elde edebilirsiniz. Statik Device.GetNamedSize yöntem ve aşırı yükleme, sabit listesi üyelerine NamedSize (Default, Micro, , MediumSmallve Large) göre platforma uygun bir double yazı tipi boyutu değeri döndürür. Üyeden döndürülen değerin Medium ile aynı Defaultolması şart değildir. NamedFontSizes örneği, bu adlandırılmış boyutları içeren metinleri görüntüler.

FontAttributes özelliğini Label bu FontAttributes sabit listesi, Bold, Italicveya Noneöğesinin bir üyesine ayarlayın. ve Italic üyelerini Bold C# bit düzeyinde OR işleciyle birleştirebilirsiniz.

Biçimlendirilmiş metin

Şimdiye kadarki tüm örneklerde, tarafından Label görüntülenen metnin tamamı tekdüzen olarak biçimlendirilmiştir. Metin dizesi içindeki biçimlendirmeyi değiştirmek için özelliğini LabelayarlamayınText. Bunun yerine özelliğini türünde FormattedStringbir nesne olarak ayarlayınFormattedText.

FormattedStringSpans bir nesne koleksiyonu Span olan bir özelliğe sahiptir. Her Span nesnenin kendi Text, FontFamily, FontSize, FontAttributes, ForegroundColorve BackgroundColor özellikleri vardır.

VariableFormattedText örneği, tek bir metin satırı için özelliğinin kullanılmasınıFormattedText, VariableFormattedParagraph ise burada gösterildiği gibi paragrafın tamamının tekniğini gösterir:

Değişken biçimlendirilmiş paragrafın üçlü ekran görüntüsü

NamedFontSizes programı, her platform için adlandırılmış yazı tipi boyutlarının tümünü görüntülemek için tek Label ve bir FormattedString nesne kullanır.