9

我最近一直在玩 WPF。我有点困惑,因为我的程序在运行时看起来与我在设计器中创建的不同。

我确信这是有正当理由的,但我无法理解为什么如此基本的东西必须如此“神秘”。

具体来说,我的意思是按钮和窗口内边框之间的底部和右边距。

设计师:

运行程序:

希望有人可以帮助解决这个问题。

XAML:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Button Content="Button" HorizontalAlignment="Left" Margin="432,289,0,0"
            VerticalAlignment="Top" Width="75" RenderTransformOrigin="-1.387,-0.75"/>
</Grid>

4

3 回答 3

17

我也遇到了这个问题,并为遇到此问题的其他人找到了一个非常简单的解决方案。

  1. 在窗口中放置一个网格,根据需要设置大小。
  2. 将窗口高度和宽度设置为自动
  3. 将窗口设置SizeToContentWidthAndHeight

Presto,网格是设定的大小,窗口现在会调整大小,无需担心边框或标题栏。

于 2015-11-04T12:58:05.677 回答
6

这仅仅是因为:

  1. 有影响设计时间的 d:Width 和 d:Height 以及影响运行时间的 Height 和 Width。所以验证它们是否相同。
  2. 如果您想保留底部的边距,您必须在 XAML 中指定它或单击底部和右侧的小边距支架。
  3. 除非你有 Expression Blend,否则不要依赖 VS 拖放,而是编写你自己的 XAML。

这样的事情是非常合乎逻辑的:

 HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,10,10" 
于 2013-09-30T19:00:58.473 回答
-1

似乎是边框和顶栏的空间。将窗口的窗口样式属性更改为无(WindowStyle="None")时,似乎按钮被放置为设计器。

VS 认为您希望窗口大小包括边框和标题栏。

于 2013-09-30T18:59:17.423 回答