嗨,我需要在 silverlight 应用程序中有一个独立于分辨率的 UI。它会隐式支持还是应该在执行 ScaleTransform 背后的代码中加以注意?
它也支持多种浏览器吗?
提前致谢。
嗨,我需要在 silverlight 应用程序中有一个独立于分辨率的 UI。它会隐式支持还是应该在执行 ScaleTransform 背后的代码中加以注意?
它也支持多种浏览器吗?
提前致谢。
您可以使用 Silverlight Toolkit 中的 ViewBox 控件来进行比例转换。它适用于所有支持的浏览器。
您还可以将 UserControl 的宽度和高度设置为 Auto(或删除它们),然后让您的 UI 拉伸(但不调整大小)到您设置的规则(通常使用 Grid 控件)。
好的,我想我将概述您可以使用 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
。