0

質問は 1x1 と単純で、答えも単純だと思います。

グリッドの幅と高さをコンテンツに合わせたいと思います。したがって、コンテンツのサイズをコードから変更する場合、グリッドを同じサイズにしたいと思います。

私は次のことを試しました:

    <Grid x:Name="ContainerGrid" Background="Cyan" MouseDown="ContainerGrid_Tapped_1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <StackPanel Grid.Column="0" Grid.Row="1">
            <Rectangle x:Name="small" Fill="Red" Width="100" Height="100" Visibility="Visible"/>
            <Rectangle x:Name="big" Fill="Green" Width="500" Height="500" Visibility="Collapsed"/>
        </StackPanel>
        <Grid x:Name="SelectedCheckMark"  Grid.Column="1" Grid.Row="0" Visibility="{Binding ElementName=big,Path=Visibility}">
            <Path x:Name="SelectedEarmark" Data="M0,0 L40,0 L40,40 z" 
                  Fill="BlueViolet" Stretch="Fill"/>
            <Path Data="F1 M133.1,17.9 L137.2,13.2 L144.6,19.6 L156.4,5.8 L161.2,9.9 L145.6,28.4 z" 
                  Fill="White" FlowDirection="LeftToRight" 
                  HorizontalAlignment="Right" Height="15"  Stretch="Fill" VerticalAlignment="Top" Width="15"/>
        </Grid>
    </Grid>

関連部分の背後にあるコード:

    private void ContainerGrid_Tapped_1(object sender, MouseButtonEventArgs e)
    {
        //Set opoosite visibility
        small.Visibility = (small.Visibility == Visibility.Visible) ? Visibility.Collapsed : Visibility.Visible;
        big.Visibility = (big.Visibility == Visibility.Visible) ? Visibility.Collapsed : Visibility.Visible;
    }

グリッドのどの状態でもシアン色が見えないようにしたいと思います。ただし、ContainerGrid の幅がコンテンツに収まりません。

私が逃したものは何ですか?

4

2 に答える 2

2

HorizontalAlignmentVerticalAlignmentのプロパティを操作してみてくださいContainerGrid

例えば

<Grid x:Name="ContainerGrid" Background="Cyan" MouseDown="ContainerGrid_Tapped_1" Margin="0,0,0,0" ShowGridLines="True" Height="Auto" Width="Auto" HorizontalAlignment="Left" VerticalAlignment="Top">

デフォルト値は Stretch です。これは、コンテンツに関係なく、グリッドが親要素によって指定されたスペース全体に広がることを意味します。

于 2012-10-31T11:59:50.217 に答える
0

XAML を次のように変更してみてください。

<Grid x:Name="ContainerGrid" Background="Cyan" MouseDown="ContainerGrid_Tapped_1" HorizontalAlignment="Center" VerticalAlignment="Center">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.Column="0" Grid.Row="1">
        <Rectangle x:Name="small" Fill="Red" Width="100" Height="100" Visibility="Visible"/>
        <Grid>
            <Rectangle x:Name="big" Fill="Green" Width="500" Height="500" Visibility="Collapsed"/>
            <Grid x:Name="SelectedCheckMark"  Grid.Column="1" Grid.Row="0" Visibility="{Binding ElementName=big,Path=Visibility}" HorizontalAlignment="Right" VerticalAlignment="Top">
                <Path x:Name="SelectedEarmark" Data="M0,0 L40,0 L40,40 z" 
                      Fill="BlueViolet" Stretch="Fill"/>
                <Path Data="F1 M133.1,17.9 L137.2,13.2 L144.6,19.6 L156.4,5.8 L161.2,9.9 L145.6,28.4 z" 
                      Fill="White" FlowDirection="LeftToRight" 
                      HorizontalAlignment="Right" Height="15"  Stretch="Fill" VerticalAlignment="Top" Width="15"/>
            </Grid>
        </Grid>
    </StackPanel>
</Grid>
于 2012-10-31T11:56:45.327 に答える