WPF窗口布局在运行时看起来与VS设计器不同

时间:2013-09-30 18:46:46

标签: .net wpf

我最近一直在玩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>

3 个答案:

答案 0 :(得分:7)

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

  1. 在窗口中放置一个网格,大小符合要求。
  2. 将窗口高度和宽度设置为自动
  3. 将窗口的SizeToContent设置为WidthAndHeight
  4. Presto,网格是一个设定的大小,窗口现在将调整大小,无需担心边框或标题栏。

答案 1 :(得分:6)

那只是因为:

  1. 有d:宽度和d:影响设计时间的高度以及影响运行时间的高度和宽度。所以要确认它们都是一样的。
  2. 如果你想保留底部的边距,你必须在XAML中指定它,或者点击底部和右边的小边距支架。
  3. 除非你有Expression Blend,否则不要依赖VS拖放,而是编写自己的XAML。
  4. 这样的事情是非常符合逻辑的:

     HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,10,10" 
    

答案 2 :(得分:-1)

看起来像边框的空间和顶部栏。 将窗口的窗口样式属性更改为none(WindowStyle =“None”)时, 似乎按钮被设置为设计师。

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