【问题标题】:Stretch the child grid拉伸子网格
【发布时间】:2017-08-23 17:05:39
【问题描述】:
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <StatusBar Height="25" Grid.Row="5">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0"/>
            <StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="1"/>
            <ProgressBar Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="2"/>
        </Grid>
    </StatusBar>
</Grid>

请帮助初学者。

我想创建一个 StatusBar 并将它分成 3 个元素。我想对齐左侧的第一个元素。右边第二个。第三个在中间。 在第一个和第二个元素中,我想找到文本。在第三个中,我想找到 StatusBar。

为什么 StatusBar 中的网格不想拉伸到 StatusBar 并格式化元素? 我做错了什么?

如有错误,请见谅。

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    因为StatusBar 的默认 ItemsPanel 不会告诉我们有多少空间,所以我们需要为它提供一个可以告诉我们的(如 grid)。

    一个可能的解决方案如下(直接使用网格作为 ItemsPanel):

        <StatusBar Height="25" Grid.Row="5">
            <StatusBar.ItemsPanel>
                <ItemsPanelTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                    </Grid>
                </ItemsPanelTemplate>
            </StatusBar.ItemsPanel>
    
            <StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0"/>
            <StatusBarItem Content="Text" FontSize="10" Height="20" VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="1"/>
            <ProgressBar Width="100" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="2"/>
        </StatusBar>
    

    【讨论】:

    • 我也不确定您是否可以将ProgressBar 转储到StatusBar 而不会产生任何影响。如果遇到麻烦,请尝试将其包装在 StatusBarItem
    • 也可以设置HorizontalContentAlignment
    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    相关资源
    最近更新 更多