我有一個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