2015-09-08 3 views
1

В качестве заголовка мне было интересно, можно ли задать какой-либо тип свойства: CanUserResize = true; Я работаю над очень отзывчивым и на самом деле хорошо подхожу, но теперь я хочу убедиться, что TabControl как-то возможно способный увеличить высоту вручную, так как происходит точно захват краев окна 'Window OS or OS X OS', перетаскивая их вверх или вниз. В сети я ничего не нашел, возможно, в WPF еще не реализован подобный режим .... Будет ли подобная дорога для достижения этой цели?Как изменить размер TabControl?

ответ

1

Чтобы достичь того, что вы пытаетесь сделать, вы должны использовать GridSplitter.

A GridSplitter - это только один специальный элемент управления, который может быть размещен внутри Grid, и позволяет пользователю захватывать его и перемещать вверх и вниз (или вправо или влево, в зависимости от того, является ли разделитель горизонтальным или вертикальным) для изменения размера строки и столбцы Grid.

В вашем случае, вы могли бы сделать что-то вроде этого:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" MinHeight="200" MaxHeight="500" /> 
     <RowDefinition Height="5" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 

    <TabControl x:Name="myTabControl" 
       Grid.Row="0" /> 
    <GridSplitter Grid.Row="1" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Stretch" /> 
</Grid> 

Вы можете стиль GridSplitter любым удобным вам способом, а также использовать горизонтальные и вертикальные разветвители в то же время, если вам нравится, или даже несколько горизонтальный или вертикальных разветвителей.

EDIT: Как правило, GridSplitter цифры автоматически будь то горизонтальной или вертикальной, но вы можете указать его вручную, используя свойство ResizeDirection (со значениями Auto, Columns или Rows).

EDIT 2: Я добавил MinHeight и А MaxHeight значения первого ColumnDefinition иллюстрировать, как можно предотвратить GridSplitter упущенный некоторых размеров.

+0

Один вопрос: возможно ли предотвратить слияние GridSplitter? В частности, я хочу, чтобы пользователь мог подняться до максимальной высоты .. но я хочу установить минимальную высоту для TabControl, поэтому GridSplitter не должен опускаться. – Bender

+0

Я думаю, вы можете это сделать, установив 'MinHeight' или 'MaxHeight' в' RowDefinition'. «GridSplitter» должен соблюдать эти ограничения. – almulo

+0

Я уже пробовал, но не работал .. Не могли бы вы вставить это в свой пример, пожалуйста? – Bender

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