2017-02-18 6 views
0

У меня есть приложение, в котором основные окна содержат четыре разных вкладки. В области содержимого для одной из вкладок у меня есть сетка с двумя столбцами, где левый столбец содержит список элементов, а правый столбец имеет подробное представление для выбранного элемента. При необходимости оба столбца прокручиваются.ScrollBar «priority»

Я хотел бы добавить minwidth и minheight к контейнеру сетки на этой вкладке, так что расположение двух столбцов не слишком искажено. Тем не менее, я не хочу ограничивать MainWindow, так как пользователь может захотеть сделать окно довольно маленьким при просмотре других вкладок.

Если я закрою область содержимого вкладки ScrollViewer, внутренние столбцы никогда не будут показывать полосы прокрутки. Возможно ли, что внутренние полосы прокрутки «имеют приоритет», и появляются полосы прокрутки на внешнем экране ScrollViewer, когда ширина/высота опускается ниже минимальной/минимальной высоты сетки?

ответ

0

Если я закрою область содержимого вкладки с помощью ScrollViewer, внутренние столбцы никогда не будут показывать полосы прокрутки.

Ну, если вы установите внешнюю прокрутку ScrollViewer вертикально прокручиваемой, уверен, это было бы правдой. Так что не делай этого.

Просто установите внешнюю ScrollViewer только прокрутки по горизонтали:

HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" 

И установить внутреннюю ScrollViewers только прокрутки по вертикали:

HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto" 

Вот краткий демо, что я доказал в Kaxaml. Если вы сделаете его более узким, чем 500 пикселей, он получит горизонтальную полосу прокрутки; но два внутренних столбца по-прежнему имеют свою собственную вертикальную полосу прокрутки и могут прокручиваться независимо друг от друга.

<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled"> 
    <UniformGrid Rows="1" Columns="2" MinWidth="500"> 
    <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> 
     <Button Height="650">Column 1</Button> 
    </ScrollViewer> 
    <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> 
     <Button Height="1500">Column 2</Button> 
    </ScrollViewer> 
    </UniformGrid> 
</ScrollViewer> 

Screenshot of nested ScrollViewers in different directions

+0

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