2010-02-09 61 views
0

嗨,我需要在Silverlight应用程序中有一个独立的UI分辨率。它会隐式支持,还是应该在执行ScaleTransform后在代码中注意?silverlight中的分辨率问题

它是否也支持多种浏览器?

在此先感谢。

+0

分辨率无关?你有没有考虑设置容器的垂直和水平对齐以“伸展”。这通常应该填满容器可用的空间。 – Johannes 2010-02-09 07:27:51

回答

2

您可以使用Silverlight Toolkit中的ViewBox控件进行缩放转换。它将在所有支持的浏览器上运行。

您还可以设置用户控件的宽度和高度为自动(或删除),然后让UI伸展(但不调整)为您设置(通常用网格控制)规则。

0

好吧,我想我会概述所有可以使用Silverlight允许指定大小的隐式方法的方法。

如果使用Stretch设置为VerticalAlignment选项控制定义什么:

<TextBox Grid.Column="0" Grid.Row="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>

的UIElement将延伸至采取了所有可以利用的空间,它的父控件。像这样的另一个设置是做这样的事情定义这样的表格列宽或行高:

<ColumnDefinition Width="*"/>

这会占用所有的屏幕上的可用空间。

您可以在一个比形式增长列和网格的行:

<RowDefinition Height="3*"/> <RowDefinition Height="2*"/>

这将通过3px的每一个成长中的第一行的高度2px的是,第二个增长。

然后你就可以有多种选择,如Auto

<ColumnDefinition Width="Auto"/>

这将根据尺寸需求的增长的UIElement。如果元素的子元素需要更多大小,元素将占用更多的屏幕空间。

最后:

<TextBox Grid.Column="1" Grid.Row="0" Height="100" MinWidth="200" MaxWidth="400" x:Name="text"/>

这些是固定值,并确保任何给定的分辨率,该元件不会占用超过400像素的宽度,但不小于200像素。它还表示元素的高度应始终为100px。这对于诸如按钮等元素非常有用,您不希望随着分辨率的改变而增大或缩小。

最后,你可能会想换一个ScrollViewer围绕整个事情,只是为了确保关闭屏幕元素可以被滚动到。当您的视图需要比屏幕上可用空间更多的空间或元素设置为Auto时,可能会发生这种情况。