У меня есть следующие кнопки для навигации в представлении браузера:
<Button ToolTip="{StaticResource Back}" x:Name="BtnBack" Style="{StaticResource FaButton}" dx:ThemeManager.ThemeName="None" Click="BtnBack_Click">
<fa:FontAwesome Style="{StaticResource FaIcon}" Name="FaBack" Icon="ArrowLeft" HorizontalAlignment="Center" />
</Button>
<Button ToolTip="{StaticResource Forward}" x:Name="BtnForward" Style="{StaticResource FaButton}" dx:ThemeManager.ThemeName="None" Click="BtnForward_Click">
<fa:FontAwesome Style="{StaticResource FaIcon}" Name="FaForward" Icon="ArrowRight" HorizontalAlignment="Center" />
</Button>
<Button ToolTip="{StaticResource BackToMenu}" x:Name="BtnHome" Style="{StaticResource FaButton}" dx:ThemeManager.ThemeName="None" Click="BtnHome_Click">
<fa:FontAwesome Style="{StaticResource FaIcon}" Icon="Home" HorizontalAlignment="Center" />
</Button>
Я хочу изменить цвет кнопок BtnBack/FaBack
и BtnForward/FaForward
в зависимости от того, перемещаются ли они вперед / назадвозможно.Поэтому я использую следующий метод, который связан с LoadingStateChangedEvent
:
private void CwbBrowser_LoadingStateChanged(object sender, CefSharp.LoadingStateChangedEventArgs args) {
if (!args.IsLoading) {
Application.Current.Dispatcher.BeginInvoke((Action)delegate {
if (!CwbBrowser.CanGoBack) {
FaBack.Foreground = new SolidColorBrush(Color.FromArgb(50, 25, 25, 25));
} else {
FaBack.Foreground = new SolidColorBrush(Color.FromArgb(255, 68, 68, 68));
}
if (!CwbBrowser.CanGoForward) {
FaForward.Foreground = new SolidColorBrush(Color.FromArgb(50, 25, 25, 25));
} else {
FaForward.Foreground = new SolidColorBrush(Color.FromArgb(255, 68, 68, 68));
}
});
}
}
. Я сделал следующие шаги:
- После начальной загрузки и
CanGoForward
, иCanGoBack
return false
, что правильно, потому что в истории есть только запись. - Если я нажму на ссылку в браузере, метод будет вызван снова.На этот раз
CanGoForward
и CanGoBack
снова оба возвращают false
, что немного смущает меня, потому что была загружена новая страница. - Если я нажимаю кнопку
BtnBack
, браузер возвращается кПервая страница и метод будет вызван.Теперь CanGoBack
равно true
, а CanGoForward
равно false
, что, по-видимому, является правильными значениями для второго шага.
Поскольку всегда имеются значения из этого шага, ранее доступные,Я предполагаю, что событие поднято / метод вызывается до добавления новой записи истории.Во время отладки моего кода метод будет вызван до того, как новая страница будет отображена в браузере, что подтверждает мое предположение.
Таким образом, вопрос в том, существует ли альтернативное событие, которое вызывается после успешной загрузки страницы вбраузер?Я не смог найти подходящий метод с помощью intellisense или в документации.