-1

タブアイテムの下部を埋めるグリッドを取得し、サイズを正しくするにはどうすればよいですか? (個人的には、その領域をページと呼びます)。現状では、レイアウト ルートにグリッドがあり、その上にいくつかのタブがあるタブ コントロールがあります。グリッドをタブ コントロールにドラッグ アンド ドロップしようとしました。ただし、最初に作成した固定サイズに常に設定されています。

  <Grid x:Name="LayoutRoot" Margin="0,0,-1,0" Grid.IsSharedSizeScope="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="4*"/>
        <ColumnDefinition Width="1497*"/>
        <ColumnDefinition Width="116*"/>
        <ColumnDefinition Width="36*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="101*"/>
        <RowDefinition Height="24*"/>
        <RowDefinition Height="5*"/>
        <RowDefinition Height="27*"/>
        <RowDefinition Height="597*"/>
        <RowDefinition Height="0*"/>
    </Grid.RowDefinitions>
    <Rectangle Grid.ColumnSpan="4" Fill="#FF080808" Margin="-1,0,0,0" Stroke="#FF0061FF" Grid.RowSpan="3"/>
    <Image Source="LP_Script Logo_black.jpg" Margin="32,18,1206,27" Grid.Column="1" Stretch="Fill" MinWidth="250" MinHeight="56" ScrollViewer.CanContentScroll="True"/>
    <TextBox x:Name="ProgramSearchTextBox" TextWrapping="Wrap" Text="" KeyDown="ProgramSearchTextBox_KeyDown" PreviewKeyDown="ProgramSearchTextBox_PreviewKeyDown" Margin="2,1,2,0" HorizontalContentAlignment="Right" Grid.Column="2" Grid.Row="1" />
    <TabControl x:Name="mainMenuTabControl" VerticalAlignment="Stretch" Height="Auto" Width="Auto" PreviewKeyDown="mainMenuTabControl_PreviewKeyDown" Grid.ColumnSpan="4" Margin="-1,0,1,0" Grid.Row="3" BorderThickness="1,1,1,0" Grid.RowSpan="3">
        <TabItem x:Name="homeTab" Header="Home">
            <TabItem.Background>
                <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
                    <GradientStop Color="#FFF3F3F3" Offset="0"/>
                    <GradientStop Color="#FFEBEBEB" Offset="0.5"/>
                    <GradientStop Color="#FFC1C0C0" Offset="1"/>
                </LinearGradientBrush>
            </TabItem.Background>
            <DockPanel Height="Auto" Width="Auto" d:IsHidden="True">
                <Grid x:Name="dashboard" Background="#FFE5E5E5" RenderTransformOrigin="0.5,0.5" Width="1636">
                    <Grid.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform ScaleY="-1" ScaleX="-1"/>
                            <SkewTransform/>
                            <RotateTransform Angle="180"/>
                            <TranslateTransform/>
                        </TransformGroup>
                    </Grid.RenderTransform>
                </Grid>
            </DockPanel>
        </TabItem>
        <TabItem x:Name="fileMaintTab" Header="File Maintenance" KeyDown="fileMaintTab_KeyDown">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="0*"/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="0*"/>
                    <ColumnDefinition/>
                    <ColumnDefinition Width="336*"/>
                    <ColumnDefinition Width="1316*"/>
                </Grid.ColumnDefinitions>
                <TreeView x:Name="FileMaintTreeView" Background="#FF747474" BorderThickness="1,1,5,1" BorderBrush="#FF0090FD" SelectedItemChanged="FileMaintTreeView_SelectedItemChanged" RenderTransformOrigin="0.5,0.5" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" Margin="0,0,1,0">
                    <TreeView.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform/>
                            <SkewTransform/>
                            <RotateTransform/>
                            <TranslateTransform/>
                        </TransformGroup>
                    </TreeView.RenderTransform>
4

3 に答える 3

1

これを示すための小さな例を次に示します。

<Grid>
    <TabControl>
        <TabItem Header="Whole Row Tab">
            <Grid Background="Blue">
                <TextBlock Text="I'm in the whole of this tab" />
            </Grid>
        </TabItem>
        <TabItem Header="Half Row Tab">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <Grid Grid.Row="1" Background="Red">
                    <TextBlock Text="I'm in the bottom half of this tab" />
                </Grid>
            </Grid>
        </TabItem>
        <TabItem Header="Another Half Row Tab">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Grid Grid.Row="1" Background="Red">
                    <TextBlock Text="I'm in the bottom half of this tab" />
                </Grid>
            </Grid>
        </TabItem>
        <TabItem Header="Varied Row Tab">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="2*" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Grid Grid.Row="0" Background="Green">
                    <TextBlock Text="I'm in the top quarter of this tab" />
                </Grid>
                <Grid Grid.Row="3" Background="Green">
                    <TextBlock Text="I'm in the bottom quarter of this tab" />
                </Grid>
            </Grid>
        </TabItem>
    </TabControl>
</Grid>
于 2013-10-22T16:21:08.067 に答える
0

Grid下にTabItem、次のように定義を設定してみてください。

<Grid.RowDefinitions>
    <RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

あなたのTreeView定義のために、私はそれを次のように変更しました:

<TreeView x:Name="FileMaintTreeView" Background="#FF747474" BorderBrush="#FF0090FD" SelectedItemChanged="FileMaintTreeView_SelectedItemChanged" Grid.Column="0" Grid.Row="0">

(マージンなどを削除しました。必要に応じて元に戻すことができます...

これにより、少なくともTreeView全体を埋めることができますTabItem

TabItemのページに何か他のものを配置したい場合... の横に何らかのコントロールがあるとしましょう。TreeView次に、別の を追加できますColumnDefinition。Width="*" は、残りのスペース全体を埋めることを意味します。Width="Auto" は、その列/行内にネストされたコントロールのサイズのみを埋めることを意味します。

于 2013-10-22T16:21:12.467 に答える
0

私にとってTabControlStyle.xamlは、次の設定を追加することで、最終的に(スタイルファイルである)から理由を見つけました:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style x:Key="TabControlStyle" TargetType="{x:Type TabControl}">
        <Style.Resources>
            <Style TargetType="{x:Type TabItem}">

                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                <Setter Property="VerticalContentAlignment" Value="Stretch"/>

                </Setter>
            </Style>
        </Style.Resources>

    </Style>
</ResourceDictionary>
于 2020-03-28T02:59:08.230 に答える