如何屏蔽WPF Wrappanel的内容?
嗨,感谢您的期待!如何屏蔽WPF Wrappanel的内容?
背景
这是对这个问题的延伸:
How do I slide child items up or down inside a WPF wrappanel?
在我问我怎么能programattically滚动WrapPanel
内容上的按钮点击向上或向下。这个问题很好地回答了,并且接受的解决方案运作良好。
问题
现在,我在WrapPanel
滚动缩略图上下按钮上点击,我怎么掩盖WrapPanel
,这样当他们框外的地砖不显示?例如,我在WrapPanel
上方有一个StackPanel
,它拥有向上和向下滚动按钮,但当向下滚动时,缩略图会覆盖它们上方的StackPanel
(和按钮)。这里是我的XAML到目前为止,请注意,缩略图被添加到WrapPanel
在运行时:
更新
使用大卫克莱默的XAML,我的布局是稳定的,但后来我还是结束了的内容WrapPanel
通过上面的StackPanel
。请参阅前后滚动事件采取的这些屏幕抓取:
之前滚动功能的
后无滚动
更新2
设置画布红色背景根据戴夫的评论如下。
之前滚动功能的
后无滚动
好了,我不会把这种直观的,但最终,这个工作:
<Border Grid.Row="1" Background="Transparent" ClipToBounds="True">
<Canvas>
<WrapPanel x:Name="spContainer"
Width="{Binding ActualWidth,
RelativeSource={RelativeSource AncestorType={x:Type Canvas}}}">
</WrapPanel>
</Canvas>
</Border>
添加边框的伎俩。感谢戴夫为您提供的所有帮助!
很高兴工作。 – 2012-01-01 22:07:48
再次感谢戴夫。如果没有你的帮助,我不可能得到那里。 – 2012-01-01 22:15:30
是不是已经足以在画布上指定cliptobound? – flq 2012-01-01 22:37:31
这听起来像你不想滚动条(无ScrollViewer
),并希望StackPanel
加以固定。请单独Grid
行如StackPanel
和WrapPanel
:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Height="150" HorizontalAlignment="Left" Margin="30,10,10,10" Name="stackPanel1" VerticalAlignment="Top" Width="Auto" Orientation="Horizontal" >
<Label Content="Home Navigator v0.1" FontFamily="Tahoma" FontSize="30" FontWeight="Bold" Foreground="White" />
<Button Content="Close" Height="50" Click="Button_Click" VerticalAlignment="Top"></Button>
<Button Content="Scroll Down" Height="50" Click="ScrollDown" VerticalAlignment="Top"></Button>
</StackPanel>
<Canvas Grid.Row="1">
<WrapPanel x:Name="spContainer"
Width="{Binding ActualWidth,
RelativeSource={RelativeSource AncestorType={x:Type Canvas}}}">
</WrapPanel>
</Canvas>
</Grid>
感谢戴夫,您建议的XAML有助于制作更好的布局,但我仍然遇到原始问题。请参阅上面的我的更新。 – 2012-01-01 21:13:50
嗯,奇怪。要么你在Canvas之外的AnimateScroll方法或其他地方渲染图像,要么(我怀疑),Canvas会在其网格行之外展开。你能确定它是哪些问题吗(比如在你的Canvas上放置一个红色背景)? – 2012-01-01 21:30:07
请看上面的新屏幕截图,戴夫。再次感谢! – 2012-01-01 21:35:03
感谢您的编辑,戴夫。这只是教会了我几件事。未来的问题会更好看!干杯。 – 2012-01-01 20:27:36
如果您需要滚动帮助,则需要使用ScrollViewer发布XAML。 – Paparazzi 2012-01-01 20:38:56
我的荣幸。那么,你想要滚动WrapPanel而不是上面的StackPanel?如果是的话,它会更容易做一些沿的方法1线条更在你前面的问题,并再次把一切都放在一个网格,与StackPanel中在0行和WrapPanel与ScrollViewer中第1行中 – 2012-01-01 20:39:15