Почему во время выполнения окно больше?
У меня есть окно, равное 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>
Ответы
Ответ 1
Я собираюсь ответить на это сам после того, как тыкнул.
Окно ActualWith и ActualHeight равно ширине и высоте, заданной дизайнером.
Какие изменения, это клиентская область. Размеры клиента будут размером окна минус граница темы. Это, однако, ломает дизайн Canvas, потому что его абсолютно позиционированные и холст-размеры изменяются на основе темы.
Способ создания Canvas. Установить размеры на холсте, удалить размеры окна и соответственно установить SizeToContent в окне. Таким образом, размеры каверн остаются фиксированными, а размер окна изменяется в зависимости от того, как выглядит граница темы.
Ответ 2
Просто потому, что размер u указывает доцент, учитывайте границу, которая будет взята из текущей темы операционной системы... Если вы устанавливаете 200x200, вы получаете это полное пространство.. вы бы не хотели, чтобы его уменьшали к коробке 190x190 из-за границы 5px с обеих сторон. и это тоже изменится на Текущую тему в операционной системе, например Aero, Classic и т.д.
Ответ 3
Установлено ли в окне значение DesignHeight
и DesignWidth
? См. Размер времени разработки WPF UserControl.
Изменить:. Следующей мыслью было попытаться использовать Snoop, чтобы во время выполнения увидеть, что именно другой. Это размер, отступы, маржа или что-то еще?
Ответ 4
Я, вероятно, утверждаю очевидное, но похоже, что тема Windows - это разница. Как они сравниваются, если вы переключаетесь на классическую тему Windows.