0

我使用 Web 浏览器控件为 Windows Phone 7 创建了一个 Web 浏览器应用程序。我想添加一个默认搜索引擎(即用于 Google 搜索或 Bing 搜索的文本框)。而且,如果用户键入任何内容(如技术等字词),则搜索应重定向到上述默认搜索引擎。谁能帮我这个???我用于输入 URL 的文本框被命名为“UrlTextBox”,我的 Web 浏览器控件被命名为“浏览器”。用于搜索引擎的文本框被命名为“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 代码。但它对我不起作用,也显示错误。我认为我在其中犯了一些错误。有人可以纠正吗???提前致谢!!!

4

1 回答 1

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;

因此,当用户输入文本并选择“Go”时,您会检查输入的文本是否是有效的 URL(可能使用正则表达式),如果不是,请执行以下操作:

String url = String.Format(defaultSearchEngine.URLPattern, SearchTextBox.Text);
于 2012-05-20T19:04:42.677 回答