Visual Studio 2010 WPF Дизайнерский масштаб - PullRequest
3 голосов
/ 19 октября 2010

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

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>

Ответы [ 3 ]

1 голос
/ 20 октября 2010

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

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

1 голос
/ 22 октября 2010

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

От MSDN:

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

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

1 голос
/ 19 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...