我在视图(Android.Views.View)中覆盖了OnMeasure
protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
int width = ResolveSizeAndState(500, widthMeasureSpec, 0);
int height = ResolveSizeAndState(500, heightMeasureSpec, 0);
SetMeasuredDimension(width, height);
base.OnMeasure(width, height);
}
我已覆盖OnDraw
protected override void OnDraw(Canvas g)
{
base.OnDraw(g);
...
}
当我呼叫Invalidate()
时,它不会呼叫OnDraw()
。
控件本身包含在ScrollView内的StackLayout中,OnDraw
唯一起作用的时间是我在ScrollView本身上设置VerticalOptions="FillAndExpand"
时,但这不是我想要的结果,因为我的自定义视图的高度现在是ScrollView的高度,并且在不滚动时被切除了。
这是我来自PCL的XAML
<ScrollView>
<StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<Controls:SimpleCalendarView Items="{Binding EventItems}" Date="{Binding Date}" ItemClicked="EventClicked" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />
</StackLayout>
</ScrollView>
有人可以帮我解决我在这里做错的事情吗?
谢谢。