Я работаю в браузере, защищенном паролем, но привязка, которую я установил между Textbox (для iput uri) и WebBrowser, не работает, как хотелось бы. Я уже несколько часов готовлю Binding, и это первый раз, когда что-то работает.
Что должен делать мой Binding: просто "синхронизировать" URI браузера и Textbox.
Что это на самом деле: Когда я пишу ссылку в текстовом поле (например, google.de), браузер переходит на Google, и текстовое поле обновляется до фактического полного URI. когда я ищу что-то в google или go на картинках google, текстовое поле не обновляется.
XAML:
<TextBox x:Name="address"
Height="30"
Margin="5"
MinWidth="400"
KeyDown="Go_Uri_KeyDown"
Text="{Binding ElementName=browser, Path=Source.AbsoluteUri, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
VerticalAlignment="Center"
FontSize="18"
VerticalContentAlignment="Center"
/>
<WebBrowser x:Name="browser"
Margin="5,45,5,5"
Source="https://google.de"
HorizontalAlignment="Left"
VerticalAlignment="Top" ScrollViewer.VerticalScrollBarVisibility="Auto" SnapsToDevicePixels="True"
/>
Eventhandler текстового поля для навигации:
private void Go_Uri_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == Key.Return)
{
Uri uri = new Uri(this.address.Text, UriKind.RelativeOrAbsolute);
if (!uri.IsAbsoluteUri)
{
string url = "https://" + this.address.Text;
this.address.Text = url;
uri = new Uri(this.address.Text, UriKind.RelativeOrAbsolute);
if (!uri.IsAbsoluteUri)
{
return;
}
}
this.browser.Navigate(uri);
}
}
если вам понадобится дополнительная информация, я предоставлю все, что могу.