簡體   English   中英

切換按鈕可見性不起作用

[英]toggle button visibility not working

我有一個使用簡單的向前和向后導航方案的網絡瀏覽器,如果用戶選擇,也可以刷新或停止導航。 所有導航都正常工作,但當我嘗試根據網絡瀏覽器是正在導航還是已導航來切換“刷新”和“停止”按鈕時,我的問題就出現了。 只要沒有導航發生,我希望將刷新按鈕設置為可見,並且在導航發生時將停止按鈕設置為可見。 我的基本實現如下,但我似乎無法根據這些情況讓按鈕從可見切換到折疊。

主頁.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 是一個嵌入到 MainPage.xaml 中並命名為 TheBrowser 的網絡瀏覽器用戶控件。 調試時,我可以看到 bool 變量 _IsNavigating 在 true 和 false 之間的變化,如上所示,但在 MainPage.xaml.cs 中未檢測到此變化,這就是我認為按鈕可見性不會改變的原因。 對此問題的任何幫助將不勝感激。我已經沒有解決這個問題的想法了。 提前致謝。

設置可見性的代碼在錯誤的地方,現在只在頁面構建時調用。

只要_isNavigating變量發生變化,就必須調用代碼。

請執行下列操作:

 void ChangeVisibility()
 {
    if (TheBrowser._IsNavigating == false)
    {
        RefreshButton.Visibility = Visibility.Visible;
        StopButton.Visibility = Visibility.Collapsed;
    }
    else
    {
        RefreshButton.Visibility = Visibility.Collapsed;
        StopButton.Visibility = Visibility.Visible;
    }
  }

void TheWebBrowser_Navigating(object sender,
    Microsoft.Phone.Controls.NavigatingEventArgs e)
{
    _IsNavigating = true;
    ChangeVisibility();
}

void TheWebBrowser_Navigated(object sender,
    System.Windows.Navigation.NavigationEventArgs e)
{
    _IsNavigating = false;
    ChangeVisibility();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM