2017-07-17 11 views
0

相対レイアウト(Xamarinフォームプロジェクト)内にSkiaSharpキャンバスビューがあります。キャンバスを単独で使用すると、ページ全体が塗りつぶされます。しかし、私はそれを相対レイアウト内で使用すると、相対レイアウトのスペース全体を満たしていません。どのように全体のレイアウトを埋めるためにキャンバスを作るには?キャンバスビューで相対レイアウト(XAML)が塗りつぶされない

enter image description here

XAML

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:local="clr-namespace:MyHomeScreen2" 
      xmlns:views="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms" 
      x:Class="MyHomeScreen2.MainPage"> 

    <RelativeLayout BackgroundColor="Yellow"> 

     <views:SKCanvasView PaintSurface="OnSecondPainting" EnableTouchEvents="True" x:Name="MyCanvas" 

       RelativeLayout.XConstraint= 
       "{ConstraintExpression Type=RelativeToParent, 
             Property=X, 
             Constant=0}" 

      RelativeLayout.YConstraint= 
       "{ConstraintExpression Type=RelativeToParent, 
             Property=Y, 
             Constant=0}"> 
     </views:SKCanvasView> 

     <BoxView Color="Blue" 
      WidthRequest="100" 
      HeightRequest="50" 
      RelativeLayout.XConstraint= 
       "{ConstraintExpression Type=RelativeToView, 
             Property=Width, 
             ElementName=MyCanvas, 
             Factor=0.5}" 

      RelativeLayout.YConstraint= 
       "{ConstraintExpression Type=RelativeToView, 
             Property=Y, 
             ElementName=MyCanvas, 
             Constant=25}" /> 


    </RelativeLayout> 
</ContentPage> 
+0

あなたはキャンバスのXとYの制約を設定したが、幅と高さ –

+0

ない因子1 –

+0

で親の幅と高さに対して、それを設定することができます私は、それが解決された場合はそれを答えとして入れますか?あなたがボックスのサイズを知る必要があり、xamlでそれを行う方法がわからないので、私は通常、後ろにコードを使用します。それは受け入れられますか? –

答えて

2

キャンバスは、XとY制約を指定するが、幅と高さではありません。これらの要因1

と親に対して設定されるべきであるXAML

<views:SKCanvasView PaintSurface="OnSecondPainting" EnableTouchEvents="True" x:Name="MyCanvas" 

      RelativeLayout.XConstraint= 
      "{ConstraintExpression Type=RelativeToParent, 
            Property=X, 
            Constant=0}" 

     RelativeLayout.YConstraint= 
      "{ConstraintExpression Type=RelativeToParent, 
            Property=Y, 
            Constant=0}" 
     RelativeLayout.HeightConstraint = 
        "{ConstraintExpression Type=RelativeToParent, 
              Property=Height, 
              Factor=1}" 

     RelativeLayout.WidthConstraint = 
        "{ConstraintExpression Type=RelativeToParent, 
              Property=Width, 
              Factor=1}"        

         > 
    </views:SKCanvasView> 
関連する問題