在显示进度环Winrt C#app时禁用UI

时间:2013-02-15 06:23:29

标签: c# windows-runtime progress-bar

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

请让我知道如何实现这一目标。

感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

正如我所做的那样。我创建了名为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);
            }
        }
     }