c# – 跨多个网格的WPF Grid.IsSharedSizeScope

前端之家收集整理的这篇文章主要介绍了c# – 跨多个网格的WPF Grid.IsSharedSizeScope前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一种情况,我有多个网格中的按钮,并要求所有按钮的大小相同.我试图使用Grid.IsSharedSizeScope但是没有成功.

最终布局应如下图所示,但所有按钮的大小应相同.

XAML目前看起来像这样.有谁看到我哪里出错了?

<UserControl x:Class="UserControls.UserControl2"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<Grid Grid.IsSharedSizeScope="True">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <GroupBox Grid.Row="0" Grid.Column="0" Header="Header 1" Grid.IsSharedSizeScope="True">
        <Grid Grid.IsSharedSizeScope="True">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
            </Grid.ColumnDefinitions>
            <Button Content="A" Grid.Row="0" Grid.Column="0" Margin="2" />
            <Button Content="B" Grid.Row="0" Grid.Column="1" Margin="2" />
            <Button Content="C" Grid.Row="0" Grid.Column="2" Margin="2" />
        </Grid>
    </GroupBox>
    <GroupBox Grid.Row="1" Grid.Column="0" Header="Header 2" Grid.IsSharedSizeScope="True">
        <Grid Grid.IsSharedSizeScope="True">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
            </Grid.ColumnDefinitions>
            <Button Content="AA" Grid.Row="0" Grid.Column="0" Margin="2" />
            <Button Content="BB" Grid.Row="0" Grid.Column="1" Margin="2" />
        </Grid>
    </GroupBox>
</Grid>

解决方法

仅将Grid.IsSharedSizeScope应用于顶级容器.参考下面的代码.
<Grid Grid.IsSharedSizeScope="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <GroupBox Grid.Row="0" Grid.Column="0" Header="Header 1" >
            <Grid >
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                </Grid.ColumnDefinitions>
                <Button Content="A" Grid.Row="0" Grid.Column="0" Margin="2" />
                <Button Content="B" Grid.Row="0" Grid.Column="1" Margin="2" />
                <Button Content="C" Grid.Row="0" Grid.Column="2" Margin="2" />
            </Grid>
        </GroupBox>
        <GroupBox Grid.Row="1" Grid.Column="0" Header="Header 2" >
            <Grid >
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
                </Grid.ColumnDefinitions>
                <Button Content="AA" Grid.Row="0" Grid.Column="0" Margin="2" />
                <Button Content="BB" Grid.Row="0" Grid.Column="1" Margin="2" />
            </Grid>
        </GroupBox>
    </Grid>

猜你在找的C#相关文章