Подтвердить что ты не робот

Почему во время выполнения окно больше?

У меня есть окно, равное 340 x 146 px, не изменяемое по размеру.

В дизайнере размер окна правильный. Но когда я запускаю приложение, он больше. enter image description here

Изменить: также макет Canvas.

Классическая тема:

enter image description here

Edit2:

После запуска snoop (спасибо Zach), кажется, что фактические размеры - это то, что я указал. Но клиентская область больше, чем одна в визуальной студии.

Теперь я понимаю, что размер клиента растягивается, когда размер окна фиксирован для определенных размеров. Однако я думаю, что это делает 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>
4b9b3361

Ответ 1

Я собираюсь ответить на это сам после того, как тыкнул.

Окно ActualWith и ActualHeight равно ширине и высоте, заданной дизайнером.

Какие изменения, это клиентская область. Размеры клиента будут размером окна минус граница темы. Это, однако, ломает дизайн Canvas, потому что его абсолютно позиционированные и холст-размеры изменяются на основе темы.

Способ создания Canvas. Установить размеры на холсте, удалить размеры окна и соответственно установить SizeToContent в окне. Таким образом, размеры каверн остаются фиксированными, а размер окна изменяется в зависимости от того, как выглядит граница темы.

Ответ 2

Просто потому, что размер u указывает доцент, учитывайте границу, которая будет взята из текущей темы операционной системы... Если вы устанавливаете 200x200, вы получаете это полное пространство.. вы бы не хотели, чтобы его уменьшали к коробке 190x190 из-за границы 5px с обеих сторон. и это тоже изменится на Текущую тему в операционной системе, например Aero, Classic и т.д.

Ответ 3

Установлено ли в окне значение DesignHeight и DesignWidth? См. Размер времени разработки WPF UserControl.

Изменить:. Следующей мыслью было попытаться использовать Snoop, чтобы во время выполнения увидеть, что именно другой. Это размер, отступы, маржа или что-то еще?

Ответ 4

Я, вероятно, утверждаю очевидное, но похоже, что тема Windows - это разница. Как они сравниваются, если вы переключаетесь на классическую тему Windows.