我有一个webbrowser使用简单的向前和向后的导航方案,并且如果用户如此选择,也可以刷新或停止导航。所有的导航工作正常,但是当我尝试切换“刷新”和“停止”按钮时,根据浏览器是浏览浏览还是导航,我的问题就会出现。只要没有导航出现,我想要将刷新按钮设置为可见,并且在导航出现时将停止按钮设置为可见。我的基本实现如下,但我似乎无法使按钮从“可见”切换到“折叠”,具体取决于这些场景。开关按钮能见度不工作
MainPage.xaml中
<Button x:Name="RefreshButton" Content="" Style="{StaticResource RefreshBtn}" Grid.Column="0" Grid.Row="0" Visibility="Visible" Click="RefreshButton_Click" toolkit:TiltEffect.IsTiltEnabled="True">
<Button x:Name="StopButton" Content="" Style="{StaticResource StopBtn}" Grid.Column="0" Grid.Row="0" Visibility="Collapsed" Click="StopButton_Click" toolkit:TiltEffect.IsTiltEnabled="True"/>
MainPage.xaml.cs中
public MainPage()
{
InitializeComponent();
//Change Navigation buttons if the browser is currently Navigating
if (TheBrowser._IsNavigating == false)
{
RefreshButton.Visibility = Visibility.Visible;
StopButton.Visibility = Visibility.Collapsed;
}
else
{
RefreshButton.Visibility = Visibility.Collapsed;
StopButton.Visibility = Visibility.Visible;
}
//while (TheBrowser._IsNavigating == true)
//{
// RefreshButton.Visibility = Visibility.Collapsed;
// StopButton.Visibility = Visibility.Visible;
//}
}
WebBrowser.xaml.cs
//Flag to check if the browser is navigating
public bool _IsNavigating = false;
void TheWebBrowser_Navigating(object sender,
Microsoft.Phone.Controls.NavigatingEventArgs e)
{
_IsNavigating = true;
}
void TheWebBrowser_Navigated(object sender,
System.Windows.Navigation.NavigationEventArgs e)
{
_IsNavigating = false;
}
我WebBrowser.xaml.cs是web浏览器的用户控制其嵌入到MainPage.xaml中并命名为TheBrowser。在调试时,我可以看到上面显示的布尔变量_IsNavigating在true和false之间的变化,但是在MainPage.xaml.cs中没有检测到这种变化,这就是为什么我认为按钮可见性没有改变。任何有关这个问题的帮助将不胜感激..我已经用完了如何解决这个问题的想法!提前致谢。
谢谢你,唯一的问题是我的导航事件和WebBrowser控件是在我从我的主要项目引用中的MainPage,所以我无法控制按钮可视性一个单独的用户控件类来自WebBrowser.xaml.cs的MainPage.xaml.cs。我试图从MainPage.xaml.cs中检查WebBrowser.xaml.cs以查看是否_IsNavigating = true,然后相应地在MainPage.xaml.cs中更改按钮可见性,但这不起作用。有任何想法吗? – Matthew 2012-04-04 23:31:57
是使用mvvm:https://en.wikipedia.org/wiki/Model_View_ViewModel – thumbmunkeys 2012-04-04 23:47:32