2014-03-07 26 views
0

我创建了一个不错的工作滚动/缩放/泛用户控件,但现在我意识到ScrollContentPresenter没有我可以设置的背景颜色。如何为ScrollContentPresenter提供背景色?

也就是说,当我放大我的画布缩放到一个较小的区域和ScrollViewerCanvas的区域之间保持完全的白色,这是ScrollContentPresenter

有没有简单的解决方案?

一些代码来说明这一点:

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"> 
    <Grid Name="grid" RenderTransformOrigin="0.5,0.5" 
     Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualWidth}" 
     Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=ActualHeight}"> 
    <Grid.LayoutTransform> 
     <TransformGroup> 
      <ScaleTransform x:Name="scaleTransform"/> 
     </TransformGroup> 
    </Grid.LayoutTransform> 
     <ListBox ... /> 
    </Grid> 
</ScrollViewer> 

这段代码的ScrollContentPresenter缩小时成为白色显示。画布然后以为中心

没有在代码中ScrollContentPresenterGridWidth & Height binidng缩小时仍然是不可见的。画布然后固定在左上角。

回答

1

你可能会需要设置Background上无论ScrollContentPresenter的母公司是(在GridCanvas或任何包含ScrollContentPresenter)。

+0

看起来貌似合理,但不是我的代码中的网格,但ScrollViewer的内部网格是恶棍。 – Gerard

+0

好的:'var grid = Tools.FindChildVisualTree (scrollViewer); grid.Background = Brushes.Red;' – Gerard

相关问题