Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
网格中设置可见性的奇怪问题(c#,xaml,UWP)_C#_Xaml_Grid_Uwp - Fatal编程技术网

网格中设置可见性的奇怪问题(c#,xaml,UWP)

网格中设置可见性的奇怪问题(c#,xaml,UWP),c#,xaml,grid,uwp,C#,Xaml,Grid,Uwp,我正在尝试制作一个网格,它可以选择玩家的数量(最多六个)并在文本框中输入名字。网格下有“+”和“-”按钮,用于添加或删除播放器(从两个开始)。一切正常,直到你加上第六个玩家,然后试着减去一个玩家。Player6文本框和Name输入文本框保持可见,取代了Player5文本框。这是xaml <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Width="800" Grid.Row="1" >

我正在尝试制作一个网格,它可以选择玩家的数量(最多六个)并在文本框中输入名字。网格下有“+”和“-”按钮,用于添加或删除播放器(从两个开始)。一切正常,直到你加上第六个玩家,然后试着减去一个玩家。Player6文本框和Name输入文本框保持可见,取代了Player5文本框。这是xaml

<Grid  HorizontalAlignment="Center" VerticalAlignment="Center" Width="800" Grid.Row="1" >
            <Grid.RowDefinitions>
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="auto" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

                <!--Headers-->
            <TextBlock Style="{ThemeResource HeaderTextBlockStyle}" Grid.Row="0" Grid.Column="0" Text=""/>
            <TextBlock Style="{ThemeResource HeaderTextBlockStyle}" Grid.Row="0" Grid.Column="1" Text="Name" Margin="20,0,20,0" TextAlignment="Center"/>

            <TextBlock Name="PlayerOneTag" Text="Player 1" FontSize="30" Grid.Row="1" Grid.Column="0" Margin="0,20,40,20" TextAlignment="Left"/>
            <TextBlock Name="PlayerTwoTag" Text="Player 2" FontSize="30" Grid.Row="2" Grid.Column="0" Margin="0,20,40,20" TextAlignment="Left"/>
            <TextBlock Name="PlayerThreeTag" Text="Player 3" FontSize="30" Grid.Row="3" Grid.Column="0" Margin="0,20,40,20" TextAlignment="Left" Visibility="Collapsed"/>
            <TextBlock Name="PlayerFourTag" Text="Player 4" FontSize="30" Grid.Row="4" Grid.Column="0" Margin="0,20,40,20" TextAlignment="Left" Visibility="Collapsed"/>
            <TextBlock Name="PlayerFiveTag" Text="Player 5" FontSize="30" Grid.Row="5" Grid.Column="0" Margin="0,20,40,20" TextAlignment="Left" Visibility="Collapsed"/>
            <TextBlock Name="PlayerSixTag" Text="Player 6" FontSize="30" Grid.Row="6" Grid.Column="0" Margin="0,20,40,20" TextAlignment="Left" Visibility="Collapsed"/>

            <TextBox Name="PlayerOneName" FontSize="30" Grid.Row="1" Grid.Column="1" />
            <TextBox Name="PlayerTwoName" FontSize="30" Grid.Row="2" Grid.Column="1" />
            <TextBox Name="PlayerThreeName" FontSize="30" Grid.Row="3" Grid.Column="1" Visibility="Collapsed" />
            <TextBox Name="PlayerFourName" FontSize="30" Grid.Row="4" Grid.Column="1" Visibility="Collapsed" />
            <TextBox Name="PlayerFiveName" FontSize="30" Grid.Row="5" Grid.Column="1" Visibility="Collapsed" />
            <TextBox Name="PlayerSixName" FontSize="30" Grid.Row="6" Grid.Column="1"  Visibility="Collapsed"/>

                <StackPanel Name="PlayerTwoButtons"  Grid.Row="7" Orientation="Horizontal">
                    <Button Name="AddPlayerThreeButton" Tapped="AddPlayerThree" Style="{StaticResource ResourceKey=PlusButton}" Visibility="Visible"/>
                </StackPanel>

                <StackPanel Name="PlayerThreeButtons"  Visibility="Collapsed" Grid.Row="7" Orientation="Horizontal">
                    <Button Name="MinusPlayerThreeButton" Tapped="MinusPlayerThree"  Style="{StaticResource ResourceKey=MinusButton}" />
                    <Button Name="AddPlayerFourButton" Tapped="AddPlayerFour"  Style="{StaticResource ResourceKey=PlusButton}" />

                </StackPanel>

                <StackPanel  Name="PlayerFourButtons" Visibility="Collapsed" Grid.Row="7" Orientation="Horizontal" >
                    <Button Name="MinusPlayerFourButton" Tapped="MinusPlayerFour"  Style="{StaticResource ResourceKey=MinusButton}"/>
                    <Button Name="AddPlayerFiveButton" Tapped="AddPlayerFive"  Style="{StaticResource ResourceKey=PlusButton}" />

                </StackPanel>

                <StackPanel Name="PlayerFiveButtons" Grid.Row="7" Orientation="Horizontal" Visibility="Collapsed">
                    <Button Name="MinusPlayerFiveButton" Tapped="MinusPlayerFive"  Style="{StaticResource ResourceKey=MinusButton}" />
                    <Button Name="AddPlayerSixButton" Tapped="AddPlayerSix"  Style="{StaticResource ResourceKey=PlusButton}"  />

                </StackPanel>

                <StackPanel Name="PlayerSixButtons" Grid.Row="7" Orientation="Horizontal" Visibility="Collapsed">
                    <Button Name="MinusPlayerSixButton" Tapped="MinusPlayerSix"  Style="{StaticResource ResourceKey=MinusButton}" />

                </StackPanel>

            </Grid>

任何关于如何解决这个问题的想法,我都会非常感激

添加player 6时,您的操作与其他按钮的点击操作不同(我比较了不同的按钮点击/点击,然后发现了问题)。在
AddPlayerSix
中,您直接操作按钮,而不是堆栈面板。以下代码有效:

private void AddPlayerSix(object sender, TappedRoutedEventArgs e)
     {
        PlayerSixName.Visibility = Visibility.Visible;
        PlayerSixTag.Visibility = Visibility.Visible;

        // Your code (not working)
        //AddPlayerSixButton.Visibility = Visibility.Collapsed;
        //MinusPlayerSixButton.Visibility = Visibility.Visible;

        // New code (works)
        PlayerFiveButtons.Visibility = Visibility.Collapsed;
        PlayerSixButtons.Visibility = Visibility.Visible;
    }

当你添加Player6时,你没有做与其他按钮点击相同的事情(我比较了不同的按钮点击/点击,然后发现了问题)。在
AddPlayerSix
中,您直接操作按钮,而不是堆栈面板。以下代码有效:

private void AddPlayerSix(object sender, TappedRoutedEventArgs e)
     {
        PlayerSixName.Visibility = Visibility.Visible;
        PlayerSixTag.Visibility = Visibility.Visible;

        // Your code (not working)
        //AddPlayerSixButton.Visibility = Visibility.Collapsed;
        //MinusPlayerSixButton.Visibility = Visibility.Visible;

        // New code (works)
        PlayerFiveButtons.Visibility = Visibility.Collapsed;
        PlayerSixButtons.Visibility = Visibility.Visible;
    }

啊,谢谢你!!我知道这将是一件非常愚蠢的事情。我很感激!啊,谢谢你!!我知道这将是一件非常愚蠢的事情。我很感激!