自动调整WPF窗口大小

时间:2011-05-21 01:29:34

标签: wpf layout window

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

我知道这是WPF的“功能”,可以通过设置SizeToContent标记来“修复”,但是当我执行此操作时会出现另一个问题:例如,如果窗口包含文本框,则用户输入溢出可见区域的数据,窗口将拉伸以容纳它。这会发生在列表框,树视图中,您可以命名它。

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

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

3 个答案:

答案 0 :(得分:2)

使用查看框

ViewBox是WPF中非常有用的控件。如果只是缩放以使内容适合可用大小。它不会调整内容的大小,但会对其进行转换。这意味着还缩放了所有文本大小和行宽。它与将图像或路径上的Stretch属性设置为Uniform的行为大致相同。

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我不认为这是通常要求的,所以它可能不容易做,我能想到的一种方法是从自动SizeToContent开始并处理Loaded事件和设置:

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