我正在创建一个UI的过程中,这是中心组件是一个scrollviewer持有一个可变数目的项目的stackpanel。如果屏幕上没有足够的空间,则左侧和右侧的按钮似乎允许使用滚动查看器单击堆栈面板。请注意,这些项目都是相同的大小。动态调整scrollviewer的宽度
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="LeftButton" Width="Auto"/>
<ColumnDefinition x:Name="Content" Width="*"/>
<ColumnDefinition x:Name="RightButton" Width="Auto"/>
</Grid.ColumnDefinitions>
这工作正常。但是,我现在只需要显示完整/完整的项目。因此,如果在StackPanel中有更多的项目,我可以在屏幕上显示,我不想显示右侧或左侧的部分项目。我只想让我的滚动按钮出现,表明有更多的项目可用。 所以,如果一个孩子被添加到堆叠面板中,则持有堆叠面板的滚动查看器应该查看屏幕上是否有足够的空间来显示所有项目。如果不是,它应该减小其宽度,以便隐藏下一个(部分可见的)项目。
我的问题是:什么是确定是否可以在屏幕上显示堆栈面板中的所有项目的最佳方法。如果没有,我怎么能隐藏部分项目可能显示?
我已经玩过了滚动查看器本身的宽度,依靠SizeChanged事件,但我不确定这是否是实现此行为最明智的方法。在初始化时确定滚动查看器的MaxWidth是否更好?是否相应地设置并让它增长?
由于提前, 好奇心
实现此目标更复杂的一个问题是,一旦设置了滚动查看器,就无法更改其宽度。如果我尝试,它将不会显示。 – curiosity 2012-02-08 10:24:08