Я хочу использовать SkiaSharp Canvas в ScrollViewer, но не только в основном контенте, но также в TopHeader и LeftHeader. События рисования вызываются, лыжи рисуют, но результат не отображается на экране, только в основном контенте.
вот пример:
<ScrollViewer
HorizontalScrollBarVisibility="Visible"
HorizontalScrollMode="Enabled"
VerticalScrollBarVisibility="Visible"
VerticalScrollMode="Enabled">
<ScrollViewer.TopHeader>
<Grid
Width="{Binding ElementName=Canvas, Path=ActualWidth}"
Height="30"
Background="LightGray">
<TextBlock Text="Hello" />
<skia:SKXamlCanvas
x:Name="TopHeaderCanvas"
Margin="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
PaintSurface="OnPaintTopHeader" />
</Grid>
</ScrollViewer.TopHeader>
<ScrollViewer.LeftHeader>
<skia:SKXamlCanvas
Width="60"
Height="{Binding ElementName=Canvas, Path=ActualHeight}"
Background="Gray"
PaintSurface="OnPaintLeftHeader" />
</ScrollViewer.LeftHeader>
<ScrollViewer.Content>
<skia:SKXamlCanvas
x:Name="Canvas"
Width="4000"
Height="3500"
Margin="0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
PaintSurface="OnPaintMainContent" />
</ScrollViewer.Content>
</ScrollViewer>
Как вы можете видите, я попробовал скайп острый холст в завернутый в сетку, прямо под ScrollViewer. К сожалению, это не помогает.
Вот результат.
Слева абсолютно пусто, но оно должно быть заполнено HotPink, и TopHeader просто отображает Grid со словом «hello», но он должен быть покрыт холстом и заполнен зеленым цветом.
У кого-нибудь есть идея, почему skia не работает в ScrollView TopHeader и Left Header?
Nuget SkiaSharp, содержащий холст: https://www.nuget.org/packages/SkiaSharp.Views/1.68.2-preview.21
А вот пример SkiaSharp: https://github.com/mono/SkiaSharp/tree/master/samples/Basic/UWP/SkiaSharpSample