0

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

它也支持多种浏览器吗?

提前致谢。

4

2 回答 2

2

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

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

于 2010-02-09T08:28:23.037 回答
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

于 2010-02-10T13:35:40.863 回答