Создание tabitem в wpf C # xaml? - PullRequest
0 голосов
/ 11 ноября 2019

Можно ли расположить тапитем следующим образом:

enter image description here

Дочерний элемент (содержимое) должен охватывать сетку, но родительский элемент (TapItem) не должен делатьthis.

Я попробовал это следующим образом.

 <Grid Grid.Column="1" Grid.Row="2">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*" x:Name="PropertyBarWidth"/>
            <ColumnDefinition Width="10*" x:Name="DrawingAreaWidth"/>
            <ColumnDefinition Width="1*" x:Name="LibraryWidth"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="25"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <TabControl Grid.ColumnSpan="3" Grid.RowSpan="2" x:Name="OpenDrawings" Background="{StaticResource B_drawingarea}" BorderThickness="0">
            <TabItem Header="Test" Grid.Column="1" Grid.RowSpan="1" Grid.Row="0" Style="{StaticResource TabItemStyle}">
                <local:UserControl1></local:UserControl1>
            </TabItem>
        </TabControl>

        <Rectangle Grid.RowSpan="2" Fill="{StaticResource B_propertybar}"/>
        <GridSplitter Grid.Row="0" Grid.RowSpan="2" Height="100" Width="20"/>
        <Rectangle Grid.RowSpan="2" Grid.Column="2" Fill="{StaticResource B_propertybar}"/>

</Grid>

Проблема здесь в том, что gridsplitter не должен перемещать содержимое tabitem. Но левая и правая области должны двигаться вместе с самим tapitem.

Может быть, кто-то может помочь, спасибо!

1 Ответ

0 голосов
/ 13 ноября 2019

То, что вы пытаетесь достичь, выглядит более осуществимым с помощью элемента управления Docking, чем с помощью простого разветвителя Grid, просто используйте элемент управления Xceed AvalonDock , не тратьте свое время на повторное изобретение колеса;}:

<Window ...
    xmlns:xcad="http://schemas.xceed.com/wpf/xaml/avalondock"
    Title="MainWindow" Height="600" Width="1024">
<Grid>
    <xcad:DockingManager BorderThickness="1">
        <xcad:LayoutRoot x:Name="LayoutRoot">
            <xcad:LayoutPanel Orientation="Horizontal">
                <xcad:LayoutAnchorablePane IsMaximized="True" >
                    <xcad:LayoutAnchorable ContentId="MainTab" Title="MainTab" CanHide="False" CanClose="False"
                              AutoHideWidth="240">
                        <Grid>
                            <Border Background="LightSalmon"/>
                            <!--your main panel with the drawing usercontrol-->
                        </Grid>
                    </xcad:LayoutAnchorable>
                </xcad:LayoutAnchorablePane>
            </xcad:LayoutPanel>

            <xcad:LayoutRoot.LeftSide>
                <xcad:LayoutAnchorSide>
                    <xcad:LayoutAnchorGroup>
                        <xcad:LayoutAnchorable Title="LeftSideTools" ContentId="LeftSide">
                            <Grid>
                                <Border Background="LightSalmon"/>
                                <!--your left panel tools--> 
                            </Grid>
                        </xcad:LayoutAnchorable>
                    </xcad:LayoutAnchorGroup>
                </xcad:LayoutAnchorSide>
            </xcad:LayoutRoot.LeftSide> 
            <xcad:LayoutRoot.RightSide>
                <xcad:LayoutAnchorSide>
                    <xcad:LayoutAnchorGroup>
                        <xcad:LayoutAnchorable Title="RightSideTools" ContentId="RightSide">
                            <Grid>
                                <Border Background="LightSalmon"/>
                                <!--your right panel tools--> 
                            </Grid>
                        </xcad:LayoutAnchorable>
                    </xcad:LayoutAnchorGroup>
                </xcad:LayoutAnchorSide>
            </xcad:LayoutRoot.RightSide>
        </xcad:LayoutRoot>
    </xcad:DockingManager>
</Grid>

Здесь - это слепок пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...