代码之家  ›  专栏  ›  技术社区  ›  henriksen

如何防止VS WPF设计器在工具箱中的每个对象上添加边距

  •  6
  • henriksen  · 技术社区  · 16 年前

    当我将控件从工具箱拖动到Visual Studio 2008 WPF设计图面上时,它会根据我放置它的位置和默认大小设置边距。

    有什么方法可以防止VS设置这些吗?当我在stackpanel上放置一个控件时,我希望它流入面板中的现有控件。

    3 回复  |  直到 16 年前
        1
  •  5
  •   Ryan Lundy    7 年前

    我从来没有找到一种方法来防止这种情况。我只是键入XAML。

    :

    我大约三年前写了上面的内容。与此同时,设计时的体验似乎已经变得更好了。

    这里有一篇文章的链接,该文章说明了如何在Visual Studio 2010中使用设计工具来布局表单,而无需键入任何XAML。(尽管标题如此,但它是关于WPF的。)

    Layout Techniques for Windows Form Developers

        2
  •  0
  •   ScottG    16 年前

    当我将一个控件放入stackpanel时,它不会添加边距,而是与其他控件一起“流入”。

    默认情况下,您放置在设计图面上的控件有边距,因为这是它知道放置位置的方式。我通常做的是创建一个网格,并将其边距设置在我想要的位置,然后创建列和行来放置控件。我加入了其他控件,这些控件会添加通常不是我想要的边距。在将所有控件合理放置在网格中后,我切换到XAML视图,要么完全删除边距(这会导致按钮等控件填充整个空间),要么将边距设置为5,这会在控件周围添加一些漂亮的填充。

    底线。..在Silverlight开发中尤其如此,您必须习惯直接操纵XAML。这是您将布局精确到所需位置的唯一方法。这是我的观点,也是我店里从事WPF/silverlight开发的大多数人的观点。

        3
  •  0
  •   Richard McGuire    16 年前

    不幸的是,似乎没有办法做到这一点。

    默认大小是由设计器操纵控件大小而设置的。当您增加控件的宽度和/或高度时,设计器会将您的操作解释为请求使控件达到指定的宽度和(或)高度。

    在利润方面也遇到了类似的情况。当您在设计器中更改控件的位置时,它会修改属性以实现您创建的布局。对于大多数容器,最简单的解决方案是修改边距以达到所需的位置,正如您已经指出的那样,简单的解决方法并不总是最理想的。

    就我个人而言,我更喜欢只使用XAML编辑器,并且只在想查看当前布局时偶尔在WPF设计器上达到峰值。我也倾向于使用网格来布局我的大多数窗口/控件,因为它不仅在大小和定位方面提供了最大的灵活性,而且在动画、变换等其他任务/功能方面也提供了最大灵活性。

    推荐文章