Управление высотой приложения в WPF (Выражение высоты в процентах от высоты экрана) - PullRequest
0 голосов
/ 12 июля 2011

Итак, я создал приложение WPF на моем мониторе с большим разрешением по высоте (1280 против 1024). На моем мониторе работает нормально.

Но когда я подношу его к монитору с другим разрешением, все приложение выходит за пределы монитора и в результате не может использоваться.

Любая идея, как мы можем исправить это. Вся высота моих элементов управления и высота окна фиксированы

Ответы [ 2 ]

1 голос
/ 12 июля 2011

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

Реальное решение для вас, вероятно,использовать WPF Grid элемент управления.Все ваши элементы управления должны быть в сетке, которая заполняет все окно.В зависимости от того, как вы настроили строки и столбцы сетки, ваши элементы управления будут масштабироваться по мере изменения размера окна.

Допустим, у вас есть четыре элемента управления, которые вы хотите равномерно разместить в вашей сетке.Вы можете сделать это:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height=".25*"/>
        <RowDefinition Height=".25*"/>
        <RowDefinition Height=".25*"/>
        <RowDefinition Height=".25*"/>
    </Grid.RowDefintions>
    <MyControl Grid.Row="0"/>
    <MyControl Grid.Row="1"/>
    <MyControl Grid.Row="2"/>
    <MyControl Grid.Row="3"/>
</Grid>

Теперь каждый элемент управления занимает 25% доступного пространства, и WPF обрабатывает все по мере изменения размера вашего окна.Вы можете сделать намного более сложные макеты, чем это, но, надеюсь, это поможет вам начать.

1 голос
/ 12 июля 2011

WPF на самом деле не был разработан для обработки как WinForms, где абсолютные значения ширины, высоты и положения вызывают такие ситуации.Это было разработано, чтобы быть жидким, позволить элементам управления обернуть (см. WrapPanel ), Развернуть и Свернуть (см. Авто или * размеры).Если вы относитесь к нему как к WinForms, вы столкнетесь с этими проблемами и должны будете найти сложные обходные пути.WPF был спроектирован как постоянное решение этих сложных обходных путей (среди прочего)

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

Надеюсь, это поможет.

...