那么,我的问题是什么?我有一个popup
,当我打开它时,我想在我的 Windows Phone 应用程序中禁用当前页面。所以我做了这个this.IsEnabled = false;
但我的ApplicationBar
仍然可用。当然,我尝试:
ApplicationBar.IsMenuEnabled = false;
我的下一个想法是做这样的事情:
for (int i = 0; i < ApplicationBar.MenuItems.Count; i++)
{
((ApplicationBarMenuItem)ApplicationBar.Buttons[i]).IsEnabled = false;
}
仍然没有结果。我敢肯定以前做过一些,你能告诉我怎么做吗?
应用程序栏由 Button 集合和 MenuItems 集合组成。对于您的示例,您可能想尝试类似的东西
foreach (var button in ApplicationBar.Buttons)
{
((ApplicationBarIconButton) button).IsEnabled = false; // disables the button
}
ApplicationBar.IsMenuEnabled = false; // this will prevent menu from opening
如果这不起作用,您是否考虑过隐藏应用栏?
ApplicationBar.IsVisible = false;
这个怎么样
((ApplicationBarIconButton)this.ApplicationBar.Buttons[1]).IsEnabled = true;
其中 [1] 是要启用/禁用的按钮的索引
我知道这是有效的,因为我有在Windows Phone 8应用程序中使用它的代码
你能发布一些代码让我们看看吗
不幸的是,根据这篇文章,有一个错误,这意味着设置ApplicationBarMenuItem
的IsEnabled
属性在菜单关闭并重新打开之前不会得到尊重。
只需包含使用 Microsoft.Phone.Shell 在 .cs 文件中选取命名空间,即可执行以下操作:
ApplicationBar.Enable();
和
ApplicationBar.Disable();
据 http://new.efficientcoder.net/2010/10/windows-phone-7-quick-tip-17.html
试试这个:
XAML:
<shell:ApplicationBar IsVisible="False">
。.cs
Dispatcher.BeginInvoke(() =>
{
UIHelper.ToggleVisibility(Canvas_LocationAR_Trans);
UIHelper.ToggleVisibility(Grid_LocARLoadingGrid);
**ApplicationBar.IsVisible = true;**
});