【问题标题】:Disable UI while showing progress ring Winrt C# app在显示进度环时禁用 UI Winrt C# 应用程序
【发布时间】:2013-02-15 06:23:29
【问题描述】:

在我的 winrt C# 应用程序中,我想在显示进度环且后台运行某些内容时禁用用户交互。

请告诉我我们如何实现这一目标。

谢谢。

【问题讨论】:

标签: c# windows-runtime progress-bar


【解决方案1】:

将您的内容放在一个包含一行和一列的网格中,并将您的内容放在这个单个单元格中(很可能在另一个网格中)。在包含网格内,紧挨“真实”内容下方但在同一个单元格内,放置一个全宽、全高透明虚拟网格,其可见性与进度环的可见性绑定。通过一些调整,您应该能够让虚拟网格捕获所有用户输入并防止它进入“真实”内容。当虚拟网格的可见性折叠时(即进度环也折叠时),“真实”内容将正常运行。

【讨论】:

    【解决方案2】:

    正如我所做的那样。我创建了名为 CurtainUserControl 的用户控件,其中只有网格:

        <Grid x:Name="curtainGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        </Grid>
    

    我可以在代码中展示它

            public void ShowCurtain()
        {
            CurtainUserControl guc = new CurtainUserControl();
            mainGrid.Children.Add(guc);
        }
    

    隐藏

            public void HideCurtain()
        {
            int childCount = VisualTreeHelper.GetChildrenCount(mainGrid);
            for (int i = 0; i < childCount; i++)
            {
                CurtainUserControl guc = mainGrid.Children.ElementAt(i) as CurtainUserControl;
                if (guc != null)
                {
                    mainGrid.Children.RemoveAt(i);
                }
            }
         }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多