2010-02-09 24 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時,可能會發生這種情況。