设置为内容大小的窗口会在每一侧留下间隙

时间:2012-02-02 17:28:42

标签: wpf xaml layout window

有人可以告诉我为什么,即使我将我的窗口设置为SizeToContent并且我的内容宽度= 40,应用程序在宽度上加载的是否更大?

以下示例的大小为高度,但宽度约为100像素(估算值)。

由于

<Window x:Class="WpfApplication2.RetailButs"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="RetailButs" SizeToContent="WidthAndHeight"
        WindowStyle="None" MinWidth="0" >
        <Grid x:Name="LayoutRooty" Width="40" Height="40">
            <Border x:Name="LayoutRootx" Background="White" BorderBrush="Black" CornerRadius="8" BorderThickness="4" >
            </Border>
        </Grid>
</Window>

2 个答案:

答案 0 :(得分:1)

你得到的额外尺寸来自3个右上方的窗口按钮。

所以最好的解决方案就是按下(1)按钮并为窗口设置一些最小尺寸(2)

试试这个,这正是你所需要的。

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"  Width="40" Height="40" SizeToContent="WidthAndHeight" WindowStyle="None" ResizeMode="NoResize">
    <Grid x:Name="LayoutRooty" Width="40" Height="40">

        <Border x:Name="LayoutRootx" Background="White" BorderBrush="Black" CornerRadius="8" BorderThickness="4" >

        </Border>

    </Grid>
</Window>

答案 1 :(得分:0)

最近有一个类似的问题我无法找到。如果WindowStyle是默认的3D边框,而所有按钮占用大量空间,则大小是必需的。我认为有一些方法可以更新布局,也许你可以搞清楚。

修改:设置窗口的Width="0"(或任何其他值),它应该正确更新。内容大小将覆盖该值。

(如果您将WindowStyle设置为ToolWindow,它始终适合