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