2013-09-30 6 views
5

Я недавно немного играл с WPF. Я немного запутался, так как моя программа выглядит по-другому, когда она работает от того, что я создал в дизайнере.Структура окна WPF отличается от дизайнера VS при запуске

Я уверен, что для этого есть веская причина, но я не могу окутать голову, почему что-то настолько базовое должно быть настолько «загадочным».

Чтобы быть конкретным, я имею в виду нижнее и правое поле между кнопкой и внутренней границей окна.

Дизайнер:

Запуск программы:

Надежда кто-то может помочь с этим.

XAML:

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <Button Content="Button" HorizontalAlignment="Left" Margin="432,289,0,0" 
      VerticalAlignment="Top" Width="75" RenderTransformOrigin="-1.387,-0.75"/> 
</Grid> 

+0

В чем проблема? – Nitin

+0

blend добавляет атрибуты времени разработки для вашего xaml, http: // stackoverflow.com/questions/75495/wpf-usercontrol-design-time-size –

+0

Как я уже сказал, я имею в виду нижнее и правое поле между кнопкой и внутренней границей окна. Я заменю первый снимок экрана. – bitfrickler

ответ

5

Это просто потому, что:

  1. Есть d: Ширина и d: Высота, которые влияют на время проектирования и высоты и ширины, которые влияют на время работы. поэтому убедитесь, что они одинаковы.
  2. Если вы хотите сохранить маржу снизу, вы должны указать ее в XAML или щелкнуть по маленьким держателям полей снизу и справа.
  3. Если у вас нет Expression Blend, не полагайтесь на перетаскивание VS вместо этого, напишите свой собственный XAML.

Нечто подобное было бы очень логично:

HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,10,10" 
+0

Спасибо! Так что VS-дизайнер просто дерьмо ?! Я применил ваши изменения к XAML, и теперь поля правильные. Я завтра установлю Blend и посмотрю, работает ли это лучше. – bitfrickler

+0

Из моего опыта Перетаскивание мышц всегда давало мне лучшую чистую XAML. Хотя я рекомендую вам ознакомиться с элементами управления макета. Они дадут вам приятный и гибкий интерфейс. – HichemSeeSharp

+0

Спасибо. Сделаю это. – bitfrickler

-1

Похоже, его место границы и верхней панели. при изменении свойства стиля окна окна none (WindowStyle = "None"), кажется, что кнопка помещается в качестве дизайнера.

VS считает, что размер окна должен включать границы и строку заголовка.

4

Я имел этот вопрос, а также и нашли довольно простое решение для всех, кто работает в этом.

  1. Поместите сетку в окно, размер по желанию.
  2. Набор высоты окна и ширины для авто
  3. Установить SizeToContent как WidthAndHeight

Presto этого окна, сетка представляет собой набор размер и окно теперь будет размер его, нет необходимости беспокоиться о границе или заголовка.

Смежные вопросы