我刚开始学习SL。我试图调整其大小的画布内的所有元素。但我找不到正确的方法。在调整大小的Silverlight画布中调整所有元素的最佳方式是什么?
这是我做过什么
- 迭代throgh在画布上的所有子元素
- calaculate基于新的大小
- 并乘以每个元素的大小属性刻度值刻度X &ÿ
但是在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 ..为了更清楚我增加了一些截图
这是初始屏幕的外观。 alt text http://img690.imageshack.us/img690/4611/initial.jpg
并扩大小部件,它就会被放大及其他工具收缩
alt text http://img26.imageshack.us/img26/8725/afterexpand.jpg
我只需要做好zooing部分。有任何想法吗??
下载你想要的真正的布局特性的细节是有点粗略您可以考虑添加一些更细节的问题。例如,画布是否包含可滚动的文本项?如果是的话,这些项目应该简单地显示更多的文字,还是应该增加文字的大小?你是否希望距离画布边界的项目增长或保持不变,项目区域只增长? – AnthonyWJones 2009-12-09 13:58:54
@Anthony,添加了一些更多的信息,请检查.. – RameshVel 2009-12-10 05:23:18