我正在創建一個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