2011-05-21 203 views
2

当在XAML设计器中设计WPF对话框窗口(用户不​​能手动调整窗口大小)时,窗口会自动调整大小以适应其内容,并且一切正常。但是当我运行我的应用程序时,窗户变得很大,并且有很多空的空间。自动调整WPF窗口大小

我知道这是WPF的一个“功能”,可以通过设置SizeToContent标记来“固定”,但当我这样做时会出现另一个问题:例如,如果窗口包含文本框,并且用户输入数据溢出可见区域,窗口将伸展以适应它。这发生在列表框,树视图,你的名字。

我只想让Visual Studio找出它在设计时显示的理想窗口大小,然后在运行时将该窗口设置为该大小,并且之后不更改大小。看起来这应该是一件容易的事情。

编辑:找出问题的一部分:我在网格中设置了控件,列的宽度设置为“自动”,这就是为什么一切都在调整大小。

回答

1

尝试将窗口的高度和宽度设置为自动。另外,删除SizeToContent属性。这应该解决它。

+0

这就是我现在设定的,实际上。 – 2011-05-21 01:39:26

+0

所以你没有SizeToContent? – kevindaub 2011-05-21 01:55:41

+0

对,它被设置为其自动值“手动”。 – 2011-05-21 01:58:39

1

我不认为这是这个东西也就是通常要求所以它可能不容易做到,一种方法我能想到会自动SizeToContent来启动和处理Loaded事件和设置的:

Height = ActualHeight; 
Width = ActualWidth; 
SizeToContent = System.Windows.SizeToContent.Manual; 
2

使用视图框

视框在WPF一个非常有用的控制。如果只是缩放以适应可用大小的内容。它不会调整内容的大小,但会转换它。这意味着所有的文本大小和线宽都被缩放。它与将图像或路径上的Stretch属性设置为Uniform时的行为大致相同。

虽然它可以用来适应任何类型的控件,但它通常用于2D图形,或者将用户界面的可伸缩部分放入屏幕区域。

<Viewbox> 
<Enter your code/> 
</Viewbox>