我使用网络浏览器控件为Windows Phone 7创建了一个网络浏览器应用。我想添加一个默认搜索引擎(即用于Google搜索或Bing搜索的文本框)。而且,如果用户键入任何内容(类似技术等词),则应将搜索重定向到上述默认搜索引擎。谁能帮我这个??? 我用于输入URL的textBox命名为" UrlTextBox"我的网页浏览器控件被命名为" browsers"。用于搜索引擎的textBox被命名为" SearchTextBox"。 在此先感谢您的辛勤工作!!!
public void browsers_Navigating(object sender, NavigatingEventArgs e)
{
UrlTextBox.Text = e.Uri.ToString();
if (navigationcancelled)
{ e.Cancel = true; }
SearchEngine[] availableSearchEngines = new SearchEngine[]
{new SearchEngine(){ Name = "Google", URLPattern = "http://www.google.com/search?q={0}" }};
new SearchEngine(){ Name = "Yahoo", URLPattern = "http://search.yahoo.com/search?p={0}" };
new SearchEngine(){ Name = "Bing", URLPattern = "http://www.bing.com/search?q={0}" };
}
UrlTextBox - :
private void UrlTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
Uri url;
if (Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url))
{
this.urls[this.currentIndex] = UrlTextBox.Text;
this.browsers[this.currentIndex].Navigate(url);
}
if (!Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url))
{
SearchEngine defaultSearchEngine = availableSeachEngines[0];
String URL = String.Format(defaultSearchEngine.URLPattern, UrlTextBox.Text);
}
else
{
Navigate(UrlTextBox.Text);
}
}
}
但是有一个错误说" availableSeachEngines" ---> availableSeachEngines 这个名称在当前上下文中不存在。
现在我添加了我在我的程序中使用的代码,并在其中添加了Muaz Othman代码。但它不适合我,也显示错误。我想我在犯错误。谁能纠正呢???在此先感谢!!!
答案 0 :(得分:3)
你可以创建一个这样的类:
public class SearchEngine {
public string Name {set; get}
public string URLPattern { get; set;}
public override string ToString(){
return Name;
}
}
在你的代码中你可以拥有这个数组:
SearchEngine[] availableSearchEngines = new SearchEngine[]{
new SearchEngine(){ Name = "Google", URLPattern = "http://www.google.com/search?q={0}" };
new SearchEngine(){ Name = "Yahoo", URLPattern = "http://search.yahoo.com/search?p={0}" };
new SearchEngine(){ Name = "Bing", URLPattern = "http://www.bing.com/search?q={0}" };
}
但在您的代码中,您应该只有一个SearchEngine
对象:
SearchEngine defaultSearchEngine;
因此,当用户输入文本并选择“开始”时,检查输入的文本是否是有效的URL(可能使用正则表达式),如果不是,则执行此操作:
String url = String.Format(defaultSearchEngine.URLPattern, SearchTextBox.Text);