我有一个窗口:
<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的大小相同。然后我希望窗口可以自由调整大小。然而,这不是发生的事情。当窗口打开时,它的高度是我的显示器的高度。
我该如何解决这个问题?
答案 0 :(得分:1)
您正在使用ViewBox
通过均匀拉伸内容将内容放入可用空间。但是,由于您没有为可用空间(SizeToContent = "WidthAndHeight"
)定义高度或宽度,因此它会占用所有空间,以便它可以拉伸画布。
要进行实验,您可以设置Height="50"
并查看该窗口占用所有水平空间。
为了防止它你有几个选择:
Stretch
的{{1}}属性设置为ViewBox
,而不是None
。Uniform
Width
或Height
Window
的{{1}}或MaxHeight
属性。