XAML使用WebView';s当前的URL
我正在尝试用XAML制作一个基本浏览器:XAML使用WebView';s当前的URL,xaml,c++-cx,Xaml,C++ Cx,我正在尝试用XAML制作一个基本浏览器: <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <TextBox x:Name="urlBox" Text="{Binding El
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox x:Name="urlBox"
Text="{Binding ElementName=webView,Path=Source,Mode=TwoWay}"
KeyDown="OnUrlEnter" AcceptsReturn="False"
TextWrapping="Wrap"/>
<WebView Grid.Row="1" x:Name="webView"/>
</Grid>
我想要的是,当用户单击WebView
中的链接时,URLTextBox
会相应地更新,当然,如果用户输入URL并按下[Enter]按钮,WebView
应该导航到指定的URL,但我已经实现了这一点。我尝试过处理NavigationStarting
,NavigationCompleted
,NavigationFailed
(已弃用),LoadCompleted
(已弃用),但在用户单击WebView
中的链接时,它们都不能帮助我获得新的URL。(当我执行webView->Navigate
时,事件处理程序只被调用一次。不用说,{Binding ElementName=webView,Path=Source,Mode=TwoWay}
似乎不起作用。)
如何同步
WebView
的URL和文本框
?应该有一个简单的方法来做到这一点。嗨,你可以使用的是
暴露财产
private string browserURL;
public string BrowserURL
{
get{return browserURL;}
set{ browserURL=value;
NotifyPropertyChanged("BrowserURL");
}
}
public constructor()
{
WebBrowser.Navigating += WebBrowser_Navigating;
this.DataContext= this;
}
private void TechMCaresBrowsercontroll_Navigating(object sender, NavigatingEventArgs e)
{
browserURL=e.Uri;
}
XAML代码
<TextBox x:Name="urlBox"
Text="{Binding BrowserURL}"
KeyDown="OnUrlEnter" AcceptsReturn="False"
TextWrapping="Wrap"/>
因此,每次浏览器将导航到一个新的URL时,您公开的属性的值都会通过调用NotifyPropertyChanged进行更改,并更新您的文本框