2017-01-04 5 views
0

Я запускаю Windows 10 на .NET 4.5. В двух словах я хочу обернуть свои DockPanels в ScrollViewer, чтобы я мог просматривать вещи, которые «падают» со страницы, особенно там, где у пользователя может быть небольшой экран. Я не могу опубликовать кучу кода, или я буду в куче неприятностей ... Поэтому я надеюсь, что это что-то случилось с кем-то, и они выяснили, что делать. Ниже образы кода «без» полосы прокрутки, а затем «с» в этом порядке. Буквально единственным изменением является ScrollViewer.WPF XAML ScrollViewer делает странное форматирование существующих сеток

<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Auto"> 
    <DockPanel Visibility="Visible"> 
     <DockPanel Name="MenuBarDockPanel" Visibility="Visible" DockPanel.Dock="Top" KeyboardNavigation.TabNavigation="None" Height="26"> 
      ... 
     </DockPanel> 

     <DockPanel Name="MenuBarOptions" DockPanel.Dock="Top" KeyboardNavigation.TabNavigation="None" Height="65"> 
      ... 
     </DockPanel> 

     <Grid Margin="0,0,0,0" Name="BottomGrid"> 
      .... 
     </Grid> 
    </DockPanel> 
</ScrollViewer> 

... извините за все редактирование ... У меня нет выбора.

BEFORE scrollbars...

AFTER scrollbars...

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

+0

Я не совсем уверен, что сетки вы имеете в виду, и Ва ты имеешь в виду, что «ущипнул с места». Вы говорите о сетках справа? – Carson

+0

@ Карсон: Если вы посмотрите в верхнем правом углу первого изображения, сетка имеет ожидаемый интервал, а ниже под ним все скручивается влево. То же самое для серого/белого полосатого: первый из них разложен и читабель, а нижний - влево. Все, что я сделал, это добавить ScrollViewer, и он получил доступ. Я могу заставить макет с помощью MinWidth, но это не оптимальное исправление, которое будет появляться на полосах прокрутки, и форматирование остается неизменным. Спасибо. – CodeChops

+0

Возникает ли у вас такая же проблема, когда 'HorizontalScrollBarVisibility =" Auto "'? Кроме того, есть ли у вас какие-либо «HorizontalAlignment» на этих сетках? – Carson

ответ

0

Первый DockPanel вы должны установить LastChildFill = "истинный"

<DockPanel LastChildFill="True"> 

также док, вероятно, должен быть установлен слева, не зная, что внутри панелей

DockPanel.Dock = "Left"

и сетка

<Grid Margin="0,0,0,0" Name="BottomGrid" DockPanel.Dock="Bottom"> 
Смежные вопросы