2017-07-17 60 views
0

我有一个相对布局(Xamarin Forms项目)中的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>