2016-02-11 2 views
1

Window with frame containing main pageRe размер окна для меньшего экрана без потери элементов

Как вы можете видеть, (если изображение загружается правильно) при запуске программы из моего круга сверху, я не могу увидеть весь экран, и я не могу перейти к см. остальные элементы, содержащиеся в кадре. Я попытался добавить scrollviewer, чтобы содержать фрейм, но полоса прокрутки ничего не делает, и элементы холста перемещаются или исчезают. Включаю ли я правильный код, чтобы он соответствовал размеру экрана? Должен ли я использовать scrollviewer для просмотра всего окна или, по крайней мере, элементов на странице фрейма?

Height="{x:Static SystemParameters.PrimaryScreenHeight}" 
    Width="{x:Static SystemParameters.PrimaryScreenWidth}" 
    Loaded="Window_Load" WindowState="Maximized"> 
+0

Какие панели ваши средства управления в? И какие свойства установлены? Это определяет, как WPF решает компоновку и размер элементов управления. ScrollViewers будут работать только в том случае, если вы установите для них высоту/ширину, иначе, в зависимости от их родительской панели, они, вероятно, будут расти, чтобы разрешить любой размер содержимого. – Rachel

+0

Я использую холст для контейнеров. Страницы содержат холст, который содержит поля списка, текстовые поля и richtextboxes. – dachizzle37

+0

Это ваша проблема тогда .. 'Canvas' требует, чтобы вы указали положение каждого дочернего элемента, и он не масштабирует его вообще. Вы можете обернуть свой холст в ScrollViewer, но вам нужно будет установить высоту/ширину как ScrollViewer, так и Canvas. Лучшим решением было бы использовать другой элемент управления макетами для отображения ваших элементов, чтобы можно было использовать более динамический дисплей. Если вы новичок в элементах управления компоновкой WPF, я бы рекомендовал этот пост: [WPF Layouts - быстрый визуальный старт] (http://www.codeproject.com/Articles/30904/WPF-Layouts-A-Visual-Quick -Start) – Rachel

ответ

0

Использование ScrollViewer в окне следующим образом:

<ScrollViewer MaxHeight="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}},Path=ActualHeight,Mode=OneWay}"> 
    <canvas> 
............ 
</ScrollViewer> 

Образец Выход: (Bind MaxWidth из Scrollviewer Кроме того, если есть проблема с width тоже)

scrollviewer

0

Re размер окна для меньшего экрана без потери элементов

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

Планировочные панели WPF специально разработаны для того, что вы просите.

Возможная структура эта

<Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition/> 
      <RowDefinition/> 
      <RowDefinition/> 
     </Grid.RowDefinitions> 
     <TextBlock Text="Location"/> 
     <TextBlock Grid.Row="1" Grid.Column="0" Text="Product Line"/> 
     <TextBlock Grid.Row="2" Grid.Column="0" Text="Search"/> 
     <ScrollViewer Grid.Row="0" Grid.Column="1" Grid.RowSpan="3"> 
      <StackPanel> 
       ... 
      </StackPanel> 
     </ScrollViewer> 
    </Grid> 
+0

Спасибо, Рис! – dachizzle37

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