0

在我的 uwp 应用程序中,我添加了一个进度环,并希望在整个应用程序中使用它。但是当我从其他页面调用该环时,它不起作用。这是我的 MainPage.xaml 代码

<Grid>
 <Frame Name="FDMainFrame"></Frame>
 <ProgressRing x:FieldModifier="Public" x:Name="progress1" Height="100" Width="100" Canvas.ZIndex="999"/>
</Grid>

我在 FDMainFrame 中调用不同的页面,并希望根据这些页面上的活动显示和隐藏进度环。但我无法从其他页面访问它。请提出实现这一目标的最佳方法。提前致谢。

4

2 回答 2

2

您可以通过 MainPage 的当前实例访问 ProgressRing。这意味着您可以在 MainPage.cs 上定义一个静态Current字段,该字段可以从您的其他分页中调用以获取 MainPage 实例。

然后使用实例获取 ProgressRing 控件,也可以将 show 和 hide 方法放在 MainPage 中,直接从其他页面调用该方法。

public MainPage()
{
    this.InitializeComponent();
    Current = this;
    progress1.IsActive = true;
}

public static MainPage Current;

在另一个页面中:

private void Button_Click(object sender, RoutedEventArgs e)
{
    MainPage.Current.progress1.IsActive = false;
}

或者

private void Button_Click(object sender, RoutedEventArgs e)
{
    MainPage.Current.HideMethod();
}
于 2019-12-03T08:40:15.887 回答
0

我从您的问题中了解到的是,您正在寻找多视图之间的通信。

这种uwp-multi-view-communication将帮助您更好地理解。

希望这可以帮助。

谢谢你。

于 2019-12-03T07:09:11.730 回答