Forms 如何在expression blend中向下移动所有选定元素n行?

Forms 如何在expression blend中向下移动所有选定元素n行?,forms,silverlight-4.0,expression-blend,Forms,Silverlight 4.0,Expression Blend,在silverlight中设计表单是一件痛苦的事情。 网格确实使东西左右对齐变得很容易,但是当你开始构建更复杂的表单时,它很快就会变成一个地狱 (考虑多栏表单,在sub-usercontrol中分离表单的各个部分,使用本地化标签,以便需要将标签列设置为自动…) 我面临的一个特殊问题是,当我需要在表单中插入新行时 有没有办法选择所有的选项 多行上的控件并移动 他们都倒下一排了吗 现在,我必须穿过每一条线,一条一条地向下移动 如何有效地构建复杂表单?我从工具箱中了解到DataForm控件,但它具有“

在silverlight中设计表单是一件痛苦的事情。 网格确实使东西左右对齐变得很容易,但是当你开始构建更复杂的表单时,它很快就会变成一个地狱

(考虑多栏表单,在sub-usercontrol中分离表单的各个部分,使用本地化标签,以便需要将标签列设置为自动…)

我面临的一个特殊问题是,当我需要在表单中插入新行时

有没有办法选择所有的选项 多行上的控件并移动 他们都倒下一排了吗

现在,我必须穿过每一条线,一条一条地向下移动


如何有效地构建复杂表单?我从工具箱中了解到DataForm控件,但它具有“预览”质量,而且从我所读到的内容来看,当您需要自定义和构建多列表单时,它太不灵活了。

是的,复杂的网格可能会让更改变得烦人。这里有一些想法和想法给你

如果使用Expression Blend并使用艺术板中的蓝色条插入行或列,Blend将尝试为您执行此操作。它的成功程度各不相同,主要取决于新行或列捕捉线重叠的控件数量。为了获得最佳效果,请放大画板并将新的捕捉线添加到非常靠近上方行或左侧列的位置

此时,您仍需要进行大量清理,但Grid.Row和Grid.Column属性将得到正确调整。更正行和列大小是我选择手动编辑XAML的少数几次之一,因此手动修复这些值可能会更快

如果创建了奇数页边距(通常如此),则可以一次选择所有受影响的特性,然后整体重置页边距

也许最好的建议是考虑使用不同的控制方法。如果您发现自己不断地重新排列网格的内容,那么使用DockPanel可能会更好。通过添加停靠在顶部的元素(网格)并将行或列高度绑定到资源,可以获得类似网格的结果:

    <UserControl.Resources>
    <GridLength x:Key="StandardColumnHeight">32</GridLength>
</UserControl.Resources>

32
现在可以将ColumnDefinition宽度绑定到静态资源,确保它们都具有相同的宽度(当然,这也可以用于列宽)


如果使用同一组列定义(另一个快速XAML复制粘贴作业)定义每个后续网格


这可能需要一点额外的初始设置工作,但在DockPanel中插入新行是一个简单的XAML顺序问题,不需要太多的工作。

我还想澄清,当我说它以不同程度的成功工作时,我的意思是它“似乎”以不同程度的成功工作。换句话说,您可以添加一个新行,但是前面的元素不会重新排列,所以看起来它没有做任何事情。这就是为什么你需要调整利润率等等。我希望它有帮助:-)有趣,出于某种原因,混合移动控件,如您所说的文本框向下移动一行,但所有标签(在另一列上)保持不变。总比什么都没有好。当您统计以理解“模式”时,至少不那么令人沮丧。右键单击其中一条网格线应该会生成一个菜单,用于选择“添加上/下/左/右行/列”。功能要求?
<ColumnDefinition Width="{StaticResource StandardColumnHeight}"/>