2010-10-19 6 views
3

Я сделал простой интерфейс в Visual Studio 2010. При запуске приложения все больше. Красный квадрат на скриншоте представляет размер кнопки в запущенном приложении (справа). Я что-то упустил? Как это исправить?Visual Studio 2010 WPF Designer scale

P.S. В «Microsoft Expression Blend 4» тот же проект имеет тот же размер, что и в редакторе.


WindowsScale Slider


<Window x:Class="WpfControlReview.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Height="120" Width="256" ResizeMode="NoResize"> 
    <Grid> 
     <Button HorizontalAlignment="Stretch" Name="button1" VerticalAlignment="Stretch"> 
     <StackPanel HorizontalAlignment="Stretch" Name="stackPanel1" VerticalAlignment="Center"> 
      <Label IsHitTestVisible="False" Content="Select your options and press to commit" Name="label1" HorizontalContentAlignment="Center" FontSize="12" /> 
      <StackPanel Name="stackPanel2" Orientation="Horizontal"> 
       <Expander Header="Color" Name="expander1"> 
       </Expander> 
       <Expander Header="Make" Name="expander2"> 
       </Expander> 
       <Expander Header="Payment" Name="expander3"> 
       </Expander> 
      </StackPanel> 
     </StackPanel> 
     </Button> 
    </Grid> 
</Window> 
+2

некоторый код будет очень полезно ~~~ –

+1

Вы должны использовать 64-битную машину правильно? –

+0

@Avatar Да. Это имеет значение в любом случае? – Hooch

ответ

1

Я не уверен, что это ошибка или нет, но основная идея здесь заключается в том, что вы указали размер по умолчанию для своего окна, но поскольку элемент управления хочет быть больше (по какой-либо причине), он будет автоматически измените размер окна. Может быть ошибкой в ​​том, как Visual Studio вычисляет размер границы окна в дизайнере с указанными параметрами, поскольку он неправильно показывает его как немного меньший, чем при запуске приложения.

Я бы предпочел, чтобы вы избежали указания высоты/ширины, если это возможно. Вместо этого установите Window в значение SizeToContent = WidthAndHeight. Если вам нужно играть с размером ваших элементов управления, используйте поля или MinWidth/MinHeight, установленные непосредственно на ваших элементах управления.

+0

№ Неправильно. В «Microsoft Expression Blend 4» тот же проект имеет тот же размер, что и в редакторе. – Hooch

+0

Является ли окно в представлении дизайнера Blends больше, чем в Visual Studio? Другое дело, что окно, показанное в VS, - это точно 120X256, но реальное окно - 130x266, поэтому что-то делает его более крупным ... Если Blend также показывает окно в дизайнере в формате 130x266, это объясняет, что вы видите. Я не верю, что Blend и VS будут компилировать другой код, но дизайнер может легко показать несколько разные результаты ... – Marko

1

Вы масштаб изображения в визуальном студии дизайнера? Проверьте трекбол слева и прокрутите его вверх и вниз, чтобы увеличить или уменьшить масштаб.

+1

Это 100% (требуется еще 8 символов) – Hooch

1

Упомяните, что WPF масштабирует интерфейс. Вы вообще играли с настройками DPI? Это повлияет на рендеринг компонентов пользовательского интерфейса на дисплее. Попробуйте запустить приложение на вторичной машине, чтобы отобразить проблемы с отображением.

Из MSDN:

Разрешение независимым и аппаратно-независимой графики. Основная единицы измерения в графической системы WPF является устройство независимого пикселем, который равен 1/96-е из дюйма, независимо от фактического разрешения экрана , и обеспечивает основу для разрешения независимого и аппаратно-независимый рендеринг. Каждый независимый от устройства пиксель автоматически шкалы для соответствия точкам на дюйм (dpi) настройка системы, которую он отображает .

http://msdn.microsoft.com/en-us/library/aa970268.aspx