Я переопределил OnMeasure в моем представлении (Android.Views.View)
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()
.
Сам элемент управления содержится в StackLayout внутри ScrollView, и OnDraw
работает только тогда, когда я устанавливаю VerticalOptions="FillAndExpand"
на самом ScrollView, но это не тот результат, который мне нужен, потому что высота моего Пользовательский вид теперь имеет высоту ScrollView и обрезается, а не прокручивается.
Вот мой XAML от PCL
<ScrollView>
<StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<Controls:SimpleCalendarView Items="{Binding EventItems}" Date="{Binding Date}" ItemClicked="EventClicked" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />
</StackLayout>
</ScrollView>
Может кто-нибудь помочь мне с тем, что я здесь делаю неправильно?
Спасибо.