ScrollViewer
은 임의의 내용을 스크롤 할 수 있으므로 논리적 스크롤, 즉 픽셀이 아닌 줄을 사용하려는 경우가 아니라면 IScrollInfo를 구현할 필요가 없습니다.
사용자 지정 컨트롤에서 MeasureOverride
을 구현하지 않으면 레이아웃의 측정 단계에 참여하지 않고 ScrollViewer
은 스크롤 가능한 영역을 크게 알 수 없습니다.
<DockPanel>
<ScrollViewer Height="200" Width="250" HorizontalScrollBarVisibility="Visible">
<Grid Height="400" Width="400">
<Grid.Background>
<DrawingBrush x:Name="GridBrush"
Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="#CCCCFF">
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0 10,1" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
<GeometryDrawing Brush="#CCCCFF">
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0 1,10" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Grid.Background>
</Grid>
</ScrollViewer>
</DockPanel>
하이 켄트 :
여기 그래프 종이 배경 스크롤
Grid
의 공단 XAML 전용 예이다. 아니, 나는 그 방법을 오버라이드하지 않았다. 오직 내가 말했던 것 (OnRender). 내 사용자 지정 컨트롤은 설명 된 것보다 약간 복잡하므로 코드를 게시하면 다소 혼란 스러울 것입니다. –