Silverlight中的解决问题

时间:2010-02-09 04:58:55

标签: silverlight screen-resolution

HI,我需要在silverlight应用程序中拥有独立于解决方案的UI。它会隐式支持还是应该在执行ScaleTransform后的代码中处理?

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

您还可以将UserControl宽度和高度设置为自动(或删除它们),然后将UI拉伸(但不调整大小)到您设置的规则(通常使用网格控件)。

答案 1 :(得分:0)

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

如果您使用控件中Stretch选项的VerticalAlignment设置定义任何内容:

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

UIElement将拉伸以占用其父控件中可用的所有空间。另一个设置就是像这样定义网格列宽或行高:

<ColumnDefinition Width="*"/>

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

您可以按比例形式增加网格的列和行:

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

对于第二行增长的每个2px,这将使第一行的高度增加3px。

然后您可以选择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时,就会发生这种情况。