在我的winrt C#应用程序中,我希望在显示进度环并且某些内容在后台运行时禁用用户交互。
请让我知道如何实现这一目标。
感谢。
答案 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);
}
}
}