为什么运行时窗口较大?

Kug*_*gel 12 c# wpf dimensions

我有一个设置为340 x 146像素的窗口,不可调整大小.

在设计师中,窗口大小是正确的.但是当我运行应用程序时它更大. 在此输入图像描述

编辑:此外,布局是Canvas.

经典主题:

在此输入图像描述

EDIT2:

在运行snoop(感谢Zach)后,看起来实际尺寸是我指定的尺寸.但客户区比Visual Studio中的客户区要大.

我现在明白,当窗口大小固定到某些尺寸时,客户端大小会延伸.但是我认为这会使窗口中的Canvas布局无法使用.

EDIT3:

<Window x:Class="TI.Presentation.Views.AutentizationWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Authentication" Height="146" Width="340" ResizeMode="NoResize" Background="{StaticResource {x:Static SystemColors.ControlBrushKey}}" >
    <Canvas>
        <Label Canvas.Left="12" Canvas.Top="12" FontSize="15" Width="217">Enter authentication code here:</Label>
        <TextBox Canvas.Left="12" Canvas.Top="38" Height="23" Name="code" Width="294" FontSize="14" />
        <Button Canvas.Top="67" Content="OK" Height="28" Width="100" Canvas.Left="206" FontSize="14" IsDefault="True" Click="OKClick" />
    </Canvas>
</Window>
Run Code Online (Sandbox Code Playgroud)

Kug*_*gel 7

我会在四处寻找之后自己回答这个问题.

窗口的ActualWith和ActualHeight等于设计器中设置的宽度和高度.

客户区是什么变化.客户端的尺寸将是窗口尺寸减去主题边框.但是,这会打破Canvas设计,因为它的绝对定位和画布尺寸会根据主题而改变.

使Canvas设计工作的方法.是在Canvas上设置尺寸,在窗口上移除尺寸并相应地在窗口上设置SizeToContent.这样,空腔尺寸保持固定,窗口尺寸根据主题边框的思考方式而变化.