窗口没有调整内容大小

时间:2016-03-20 15:05:42

标签: c# wpf viewbox

我有一个窗口:

<Window x:Class="HarryPotter.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:HarryPotter"
        mc:Ignorable="d"
        Title="Harry Potter" SizeToContent="WidthAndHeight" Background="Black" WindowStartupLocation="CenterScreen"
        >
    <Viewbox Stretch="Uniform">
        <Canvas Height="640" Width="480" Background="DodgerBlue">

        </Canvas>
    </Viewbox>
</Window>

在设计师中,ViewBox的宽度= 480,高度= 640.因此,窗口的宽度和高度分别为488和671.这正是我想要的。

我希望ViewBox在启动时与Canvas大小相同,窗口大小与ViewBox的大小相同。然后我希望窗口可以自由调整大小。然而,这不是发生的事情。当窗口打开时,它的高度是我的显示器的高度。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您正在使用ViewBox通过均匀拉伸内容将内容放入可用空间。但是,由于您没有为可用空间(SizeToContent = "WidthAndHeight")定义高度或宽度,因此它会占用所有空间,以便它可以拉伸画布。

要进行实验,您可以设置Height="50"并查看该窗口占用所有水平空间。

为了防止它你有几个选择:

  • Stretch的{​​{1}}属性设置为ViewBox,而不是None
  • Uniform
  • 设置预定义的WidthHeight
  • 设置Window的{​​{1}}或MaxHeight属性。