2017-07-17 85 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>