Aracılığıyla paylaş


Xamarin.Forms Şekil

A Shape , ekrana şekil çizmenizi sağlayan bir türüdür View . Shape nesneleri, sınıf sınıfından türetildiği için düzen sınıflarının ve çoğu denetimin Shape View içinde kullanılabilir.

Xamarin.FormsŞekiller iOS, Android, macOS, Evrensel Windows Platformu (UWP) ve Windows Presentation Foundation (WPF) üzerindeki ad alanında bulunurXamarin.Forms.Shapes.

Shape aşağıdaki özellikleri tanımlar:

  • Aspecttüründe Stretch, şeklin ayrılan alanını nasıl doldurduğunu açıklar. Bu özelliğin varsayılan değeridir Stretch.None.
  • Filltüründe Brush, şeklin içini boyamak için kullanılan fırçayı gösterir.
  • Stroketüründe Brush, şeklin ana hattını boyamak için kullanılan fırçayı gösterir.
  • StrokeDashArray, türündedir DoubleCollectionve bir şeklin ana hatlarını oluşturmak için kullanılan tire ve boşluk desenini gösteren bir değer koleksiyonunu double temsil eder.
  • StrokeDashOffsettüründe double, tire deseninin içinde bir tirenin başladığı uzaklığı belirtir. Bu özelliğin varsayılan değeri 0,0'dır.
  • StrokeLineCaptüründe PenLineCap, bir çizginin veya kesimin başındaki ve sonundaki şekli açıklar. Bu özelliğin varsayılan değeridir PenLineCap.Flat.
  • StrokeLineJointüründe PenLineJoin, şeklin köşelerinde kullanılan birleştirme türünü belirtir. Bu özelliğin varsayılan değeridir PenLineJoin.Miter.
  • StrokeMiterLimit, türündeki double, bir şeklin yarıya kadar olan sicim uzunluğunun StrokeThickness oranı üzerindeki sınırı belirtir. Bu özelliğin varsayılan değeri 10,0'dır.
  • StrokeThickness, türündeki doubleşeklin ana hattının genişliğini gösterir. Bu özelliğin varsayılan değeri 1.0'dır.

Bu özellikler nesneler tarafından BindableProperty desteklenir; bu da veri bağlamalarının hedefleri olabileceği ve stillendirilebileceği anlamına gelir.

Xamarin.Forms sınıfından türetilen Shape bir dizi nesne tanımlar. Bunlar , , Line, , , Polylineve Rectangle' lerdirEllipse. PolygonPath

Şekilleri boyama

Brushnesneleri, şekillerin ve Fill'lerini Stroke boyamak için kullanılır:

<Ellipse Fill="DarkBlue"
         Stroke="Red"
         StrokeThickness="4"
         WidthRequest="150"
         HeightRequest="50"
         HorizontalOptions="Start" />

Bu örnekte, bir Ellipse öğesinin vuruşu ve dolgusu belirtilir:

Şekilleri boyama

Önemli

Brushnesneleri, özellik için Stroke değerlerin belirtilebilir olmasını sağlayan Color bir tür dönüştürücüsü kullanır.

için Strokebir Brush nesne belirtmezseniz veya 0 olarak ayarlarsanızStrokeThickness, şeklin etrafındaki kenarlık çizılmaz.

Nesneler hakkında Brush daha fazla bilgi için bkz Xamarin.Forms . Fırçalar. Geçerli Color değerler hakkında daha fazla bilgi için bkz . içindeki Xamarin.Formsrenkler.

Şekilleri esnetme

Shapenesneleri türünde Stretchbir Aspect özelliğe sahiptir. Bu özellik, nesnenin Shape içeriğinin nesnenin düzen alanını dolduracak Shape şekilde nasıl genişletileceğini belirler. Nesnenin Shape düzen alanı, açık WidthRequest ve HeightRequest ayar nedeniyle veya ve VerticalOptions ayarları nedeniyle düzen sistemi tarafından Xamarin.Forms ayrılan alan Shape miktarıdırHorizontalOptions.

Numaralandırma Stretch aşağıdaki üyeleri tanımlar:

  • None, içeriğin özgün boyutunu koruduğunu gösterir. Bu özelliğin varsayılan değeridir Shape.Aspect .
  • Fill, içeriğin hedef boyutları dolduracak şekilde yeniden boyutlandırıldığını gösterir. En boy oranı korunmaz.
  • Uniform, içeriğin hedef boyutlara sığacak şekilde yeniden boyutlandırıldığını ve en boy oranının korunduğunu gösterir.
  • UniformToFill, içeriğin hedef boyutları dolduracak şekilde yeniden boyutlandırıldığını ve en boy oranının korunduğunu gösterir. Hedef dikdörtgenin en boy oranı kaynaktan farklıysa, kaynak içerik hedef boyutlara sığacak şekilde kırpılır.

Aşağıdaki XAML özelliğin Aspect nasıl ayarlandığını gösterir:

<Path Aspect="Uniform"
      Stroke="Yellow"
      Fill="Red"
      BackgroundColor="LightGray"
      HorizontalOptions="Start"
      HeightRequest="100"
      WidthRequest="100">
    <Path.Data>
        <!-- Path data goes here -->
    </Path.Data>  
</Path>      

Bu örnekte, bir Path nesne bir kalp çizer. Nesnenin Path WidthRequest ve HeightRequest özellikleri, cihazdan bağımsız 100 birim ve Aspect özelliği olarak Uniformayarlanır. Sonuç olarak, nesnenin içeriği hedef boyutlara sığacak şekilde yeniden boyutlandırılır ve en boy oranı korunarak:

Şekilleri esnetme

Kesikli şekiller çizme

Shapenesneleri türünde DoubleCollectionbir StrokeDashArray özelliğe sahiptir. Bu özellik, bir şeklin double ana hatlarını oluşturmak için kullanılan tire ve boşluk desenini gösteren bir değer koleksiyonunu temsil eder. ADoubleCollection, değerlerden oluşan double bir ObservableCollection değerdir. Koleksiyondaki her double biri bir tirenin veya boşluğun uzunluğunu belirtir. Dizin 0'da bulunan koleksiyondaki ilk öğe, tire uzunluğunu belirtir. Dizin 1'de bulunan koleksiyondaki ikinci öğe, bir boşluğun uzunluğunu belirtir. Bu nedenle, çift dizin değerine sahip nesneler tireler belirtirken, tek bir dizin değerine sahip nesneler boşluklar belirtir.

Shape nesneleri, tire deseni içinde tirenin StrokeDashOffset başladığı uzaklığı belirten türünde doublebir özelliğine de sahiptir. Bu özelliğin ayarlanmaması, düz bir ana hattın olmasıyla Shape sonuçlanır.

Kesikli şekiller hem hem StrokeDashOffset de StrokeDashArray özellikleri ayarlanarak çizilebilir. Özelliği bir StrokeDashArray veya daha fazla double değere ayarlanmalıdır ve her çift tek bir virgülle ve/veya bir veya daha fazla boşlukla sınırlandırılmalıdır. Örneğin, "0,5 1.0" ve "0,5,1.0" geçerli olur.

Aşağıdaki XAML örneğinde kesikli dikdörtgen çizme gösterilmektedir:

<Rectangle Fill="DarkBlue"
           Stroke="Red"
           StrokeThickness="4"
           StrokeDashArray="1,1"
           StrokeDashOffset="6"
           WidthRequest="150"
           HeightRequest="50"
           HorizontalOptions="Start" />

Bu örnekte, kesikli vuruşlu dolu bir dikdörtgen çizilir:

Kesikli dikdörtgen

Denetim çizgisi uçları

Bir çizginin üç parçası vardır: başlangıç başlığı, çizgi gövdesi ve uç üst sınırı. Başlangıç ve bitiş büyük harflerinde, bir çizginin veya segmentin başında ve sonundaki şekil açıklanır.

Shape nesneleri, bir StrokeLineCap çizginin veya kesimin başındaki ve sonundaki şekli açıklayan türünde PenLineCapbir özelliğe sahiptir. Numaralandırma PenLineCap aşağıdaki üyeleri tanımlar:

  • Flat, satırın son noktasını aşmayan bir üst sınırı temsil eder. Bu, hiçbir satır üst sınırı ile karşılaştırılabilir ve özelliğin StrokeLineCap varsayılan değeridir.
  • Square, çizgi kalınlığına eşit yüksekliğe ve çizgi kalınlığının yarısına eşit bir uzunluğa sahip bir dikdörtgeni temsil eder.
  • Round, çizgi kalınlığına eşit çapa sahip bir yarım daireyi temsil eder.

Önemli

Özelliği StrokeLineCap , başlangıç veya bitiş noktası olmayan bir şekilde ayarlarsanız hiçbir etkisi olmaz. Örneğin, bir veya Rectangleüzerinde Ellipseayarlarsanız bu özelliğin hiçbir etkisi olmaz.

Aşağıdaki XAML özelliğin StrokeLineCap nasıl ayarlandığını gösterir:

<Line X1="0"
      Y1="20"
      X2="300"
      Y2="20"
      StrokeLineCap="Round"
      Stroke="Red"
      StrokeThickness="12" />

Bu örnekte, kırmızı çizgi satırın başında ve sonunda yuvarlanmış:

Çizgi büyük harfler

Denetim çizgisi birleşimleri

Shapenesneleri, şeklin PenLineJoinköşelerinde kullanılan birleştirme türünü belirten türünde bir StrokeLineJoin özelliğe sahiptir. Numaralandırma PenLineJoin aşağıdaki üyeleri tanımlar:

  • Miter, normal açısal köşeleri temsil eder. Bu özelliğin varsayılan değeridir StrokeLineJoin .
  • Bevel, eğimli köşeleri temsil eder.
  • Round, yuvarlatılmış köşeleri temsil eder.

Not

StrokeLineJoin özelliği olarak Miterayarlandığında, özellik şekildeki StrokeMiterLimit çizgi birleştirmelerinin sicim uzunluğunu sınırlamak için olarak double ayarlanabilir.

Aşağıdaki XAML özelliğin StrokeLineJoin nasıl ayarlandığını gösterir:

<Polyline Points="20 20,250 50,20 120"
          Stroke="DarkBlue"
          StrokeThickness="20"
          StrokeLineJoin="Round" />

Bu örnekte koyu mavi poliline, köşelerinde yuvarlatılmış birleşimler vardır:

Satır birleştirmeleri