我有一个全屏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