自动调整Silverlight控件的大小

时间:2011-05-20 18:46:37

标签: xaml browser layout silverlight-4.0

我正在使用Silverlight 4进行项目。我想知道是否有一种方法可以让主画布延伸到它所托管的浏览器窗口的高度和宽度?

我希望其中的控件与托管主机浏览器窗口中所有其余控件的主控件成比例地调整大小。 这是一个Prism应用程序,它在shell中有一个Shell.xaml和一个ContentControl。 在这个棱镜的情况下,我希望内容控件跨越屏幕高度和宽度的100%..当Page.xaml加载到其中时,我希望Page的usercontrol填充xaml的整个内容控件。同样,在Page.xaml中,如果我有一个网格,我希望网格增长到不超过固定像素数的大小

Page.xaml用户控件中的网格似乎正在调整大小。我无法将Page.xaml的root用户控件拉伸到浏览器窗口的整个宽度。有没有办法只使用xaml属性来完成?我不想将高度和宽度指定为800和1200,就像我在下面所做的那样。

这是我的代码

<UserControl x:Class="MyNamespace.MyClass"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" 
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
Background="#FF2D8543" 
Height="800" Width="1200"
 >

<Grid x:Name="LayoutRoot" Background="#FFEB0A0A" 
VerticalAlignment="Center" HorizontalAlignment="Center"
Height="Auto" Width="Auto"
 >
</Grid>

感谢您的时间。

1 个答案:

答案 0 :(得分:3)

是的,使用Grid代替Canvas作为顶级元素。 Grid默认占用所有可用空间。

详细了解Silverlight布局系统herehere

<强>更新

只需从Width

中删除HeightUserControl属性即可
Height="800" Width="1200"

通过明确设置,您将给出控件固定大小。如果您未指定WidthHeight,则控件将占用所有可用空间。