none
做重叠双容器的界面切换功能,在没有设置背景的情况下的容器1切换到没有设背景色的容器2时(将容器2的Visibility设为Visible),容器1的内容还在显示,如何解决 RRS feed

  • 问题

  •  <Grid>
            <Grid Name="Panel1">
                <Button   Content="切换容器2" Click="SwitchPanel2" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="211,104,0,0"  />
                <TextBlock HorizontalAlignment="Left" Margin="596,84,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/>
                <TextBox HorizontalAlignment="Left" Height="23" Margin="576,57,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
            </Grid>
            <Grid   Visibility="Collapsed" Name="Panel2"  >
                <Button  Content="切换容器1"  HorizontalAlignment="Left" Margin="368,134,0,0" VerticalAlignment="Top" Width="75"
                       Click="Click_SwitchPanel1" />
                <TextBox HorizontalAlignment="Left" Height="23" Margin="640,127,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
                <CheckBox Content="CheckBox" HorizontalAlignment="Left" Margin="213,216,0,0" VerticalAlignment="Top"/>
            </Grid>
        </Grid>
    private void Click_SwitchPanel2(object sender, RoutedEventArgs e)
            {
                Panel2.Visibility = Visibility.Visible;
            }
    
            private void Click_SwitchPanel1(object sender, RoutedEventArgs e)
            {
                Panel2.Visibility = Visibility.Collapsed;
            }

    做双容器界面切换功能。

    一开始容器2是隐藏看不见的,通过两个容器的按钮的点击事件进行界面切换,但是,有个问题,在没有设置背景的情况下,从容器1切换到没有设背景色的容器2时(将容器2的Visibility设为Visible),容器1的内容还在显示。

    如果设置容器2的背景色的话,就不会有这个问题,但是容器2必须在设置无背景色的情况下,将容器1切换到容器2,且容器1的内容让用户看起来隐藏掉,用户操作容器2的内容时不会触发容器1里的控件事件,如何解决该问题?或者还有更好的界面切换方式?



    • 已编辑 Trian555 2018年12月17日 11:46
    2018年12月17日 11:45

答案

  • Hi  Trian555,

    >> 做双容器界面切换功能。

    一开始容器2是隐藏看不见的,通过两个容器的按钮的点击事件进行界面切换,但是,有个问题,在没有设置背景的情况下,从容器1切换到没有设背景色的容器2时(将容器2的Visibility设为Visible),容器1的内容还在显示。

    如果设置容器2的背景色的话,就不会有这个问题,但是容器2必须在设置无背景色的情况下,将容器1切换到容器2,且容器1的内容让用户看起来隐藏掉,用户操作容器2的内容时不会触发容器1里的控件事件,如何解决该问题?或者还有更好的界面切换方式?

    你需要在切换事件代码做下调整。 类似如下:

            private void Click_SwitchPanel1(object sender, RoutedEventArgs e)
            {
                Panel2.Visibility = Visibility.Collapsed;
                Panel1.Visibility = Visibility.Visible;
            }
    
            private void SwitchPanel2(object sender, RoutedEventArgs e)
            {
                Panel2.Visibility = Visibility.Visible;
                Panel1.Visibility = Visibility.Collapsed;
            }


    Best Regards,

    Yong Lu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 Trian555 2018年12月18日 11:32
    2018年12月18日 6:43
    版主