我正在尝试在.net Maui的VerticalStackLayout
中绘制Line
。我希望线条从左向右延伸。
有没有办法获得父元素的大小?我尝试了WidthRequest,但没有任何结果,因为它没有设置。
<Line X1="0"
Y1="0"
X2="{ Binding Source={RelativeSource TemplatedParent}, Path=WidthRequest}"
Y2="0"
StrokeLineCap="Round"
Stroke="{StaticResource Icon}"
StrokeThickness="1"
AbsoluteLayout.LayoutBounds="70,0"
BackgroundColor="Gray"/>
1条答案
按热度按时间iqih9akk1#
问题是,
Line
在VerticalStackLayout
中,而VerticalStackLayout
在AbsoluteLayout
中,这不会向下传递其大小,这意味着HorizontalOptions
和VerticalOptions
对VerticalStackLayout
MSDN没有影响。我的解决方案如下:
行位于AbsoluteLayout本身中
AbsoluteLayout.LayoutBounds="70,0,1,1"
和AbsoluteLayout.LayoutFlags="WidthProportional"
的组合使得Line
从左向右伸展。或者行位于VerticalStackLayout中,然后需要使用AbsoluteLayout.LayoutBounds
通过
AbsoluteLayout.LayoutFlags="WidthProportional"
和AbsoluteLayout.LayoutBounds="0,0,1,1"
的组合,VerticalStackLayout
延伸到AbsoluteLayout
的宽度。如果我的控件不是在AbsoluteLayout中,它会像上面注解中所述的Leandro Toloza那样工作。