HI,我需要在silverlight应用程序中拥有独立于解决方案的UI。它会隐式支持还是应该在执行ScaleTransform后的代码中处理?
它是否也支持多个浏览器?
提前致谢。
答案 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
时,就会发生这种情况。