我有一個全屏WPF應用程序必須適應不同的屏幕分辨率,這意味着佈局主要通過適當地設置VerticalAlignment
和HorizontaAlignment
並通過玩Margin
。適合擴展器控制內容到獨立於分辨率的窗口
現在,在我的佈局中,我有一個DockPanel
與幾個Expander
控件內部水平擴展。我的預期結果與原始Xbox 360 Dashboard類似,但問題是:Expander
的內容窗格的寬度顯然取決於內容佔用的大小。我需要將控件一直展開到屏幕末尾,剩下的控件(如上面鏈接中的圖片)只剩下空間。
一個Expander
的內容的一個例子是:
<ListBox x:Name="lbDocentes" Margin="30,30,30,30" BorderThickness="0" ScrollViewer.VerticalScrollBarVisibility="Hidden" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Background="Transparent">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel x:Name="wrapPanel" IsItemsHost="True" ItemHeight="170" ItemWidth="340" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
這Listbox
必須伸展,以填補所有可用空間。
我目前的解決方法是使用代碼隱藏的.cs文件:我檢查屏幕分辨率,減去擴展器頭部所需的數量,然後在XAML文件上使用Width="{Binding Path=ControlWidth}"
,這不是一個很好的解決方案。
我需要以某種方式設置控件的寬度,以便我可以告訴它的內容伸展到可用空間。只有在XAML代碼中才能做到這一點的任何想法?
謝謝!
它似乎仍然沒有工作..也許我沒有正確地解釋, 'Listbox'填充'Expander',但我需要'Expander'來分配更多的空間,以便將剩餘的擴展器推到屏幕邊緣,如下所示:http://img222.imageshack.us/img222 /2443/63180312.png – 2010-11-17 10:31:05