我刚开始学习SL。我试图在调整大小时调整画布内所有元素的大小。但我找不到正确的方法。
这就是我所做的
- 遍历画布中的所有子元素
- 根据新尺寸计算比例 X 和 Y
- 并将比例值与每个元素的大小属性相乘
但在 SL3.0 中,我在 UIelement 中找不到任何尺寸属性来设置新尺寸。在示例代码下方
private void testCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
{
var scaleX = e.NewSize.Width / e.PreviousSize.Width;
var scaleY = e.NewSize.Height / e.PreviousSize.Height;
for (int i = 0; i < testCanvas.Children.Count; i++)
{
UIElement ui = testCanvas.Children[i];
// but no ui.width or ui.height
}
}
我也无法找到将每个元素移动到相对于大小更改的画布的新位置的选项...
有人能指出我正确的方向吗..
更新:
我想在MSCUI中实现这样的目标。为了更清楚,我添加了一些屏幕截图
这就是初始屏幕的外观。 替代文字 http://img690.imageshack.us/img690/4611/initial.jpg
在扩展小部件时,它会放大,而其他小部件会缩小
替代文字 http://img26.imageshack.us/img26/8725/afterexpand.jpg
我只需要做动物园部分。有任何想法吗??