2015-07-15 3 views
0

Я полный новичок в Visual Studio, но я хочу создать достаточно простое приложение для собственного использования на рабочем столе. Я неплохо разбираюсь в python и VBA, поэтому у меня есть некоторый опыт кодирования. Хотя адаптация к новым языкам сбивает с толку, я думаю, что могу справиться, и это не цель этой публикации. Я посмотрел, и я не могу получить четкого ответа на эту проблему.Проблемы масштабирования приложений в Visual Studio 2015

По существу, я хотел бы знать, как сделать то, что я вижу в представлении «Дизайн», именно то, что я вижу при запуске приложения, используя параметр «Локальная машина». Когда проект был создан, я выбрал C#> Windows> Windows 8> Windows, а затем выбрал пустое приложение для Windows 8.1, так как это то, что я сейчас выполняю. Моя проблема в том, что мой монитор - 1920x1080. Когда я создаю что-то на MainPage.xaml, используя код xaml и окно просмотра дизайна, я понял, как сделать вещи красивыми. Однако, когда я нажимаю, чтобы запустить приложение, используя параметр «Локальная машина» в верхней части программы, все становится странно.

Приложение открывается просто отлично; фоны и отдельные элементы в порядке. Однако выравнивание всего не работает. Я могу сделать несколько настроек, чтобы все выглядело лучше, но у меня всегда была одна и та же проблема: все, что есть в дизайне, не подходит именно тогда, когда приложение запущено.

Я сузил проблему в меню устройства, где в раскрывающемся меню «Дисплей» я могу выбрать множество разрешений, которые меняют дизайн. Однако единственное разрешение 1920x1080 составляет 140% масштабирования, что не помогает. Есть ли способ, которым я могу получить это, чтобы на 100% масштабироваться или иначе, чем я не понял?

Это изображение, что я говорю:

http://i.imgur.com/y0vIqRX.png

Обратите внимание, как прямоугольник на правом движении резко, когда приложение запускается. Все отдельные компоненты - это правильное количество пикселей и т. Д., Но фоновая сетка испортит ситуацию, когда она пытается масштабироваться. В значительной степени я хочу, чтобы то, что находится в представлении дизайна, точно представлено, когда я иду запускать его.

Спасибо за помощь, которую вы можете дать. Этот редактор действительно запутан.

+0

Ну нет. На самом деле XAML и механизм рендеринга WPF делают хорошую работу.Вы указали в своей сетке определенные свойства ширины и высоты (Column and Row-Definitions), и они придерживаются их. Вопрос: чего вы хотите достичь? И может быть очень полезно, если вы разместите соответствующий XAML. – ckruczek

ответ

0

Что происходит, это то, что символ *, который у вас есть, соответствует всем вашим ширинам столбцов, означает средневзвешенное значение (не ширина в пикселях !!!). Так как центральная колонка имеет наибольший вес, эффекты здесь наиболее очевидны. Если вы не хотите повторно посещать ваш подход к макету, вы можете сделать следующее: Удалить * из ваших ширины столбцов сетки и обернуть всю сетку Viewbox и скорректировать ширину сетки:

<Viewbox> 
    <Grid x:Name="backGrid" Width="364"> 
    .... 
    </Grid> 
</Viewbox> 

Что делает viewbox, дает клиенту управление (сетку) бесконечное пространство, а затем проверяет, сколько места он использует (364 в моем примере). Затем он масштабирует сетку, чтобы соответствовать доступному пространству (при сохранении пропорций).

Все это сказало, что все равно следует отметить, что это неудобный способ сделать ваш макет. Возможно, используйте Canvas или DockPanel для создания макета вместо сетки. Или даже вы можете просто убедиться, что независимо от того, что управление находится в центральном столбце, установлено значение HorizontalAlignment = "Stretch", чтобы он заполнил доступное пространство в центральном столбце.

Если вы хотите, чтобы некоторые советы начинались с проектирования макетов WPF, дайте мне знать в комментариях, и я могу отправить свое имя в скайпе или что-то в этом роде.

+0

Спасибо, что написали это. Я действительно смог понять это. Думаю, мне следовало бы удалить вопрос или пометить, что он решил ... Поэтому я думаю, вы можете получить разрешенный тег, наслаждайтесь! – Graham