我在這個問題上遇到了一段時間的問題,需要幫助!我有一個父項目正在實現一個在父項目之外定義的用戶控件。名爲FullWebBrowser(一個webbrowser控件)的用戶控件被加載到我的MainPage.xaml中,該工具正常工作,但是當我試圖在父項目的其他頁面中創建此用戶控件的新實例時(這是NavigatedTo from MainPage.xaml中)。 對於快速參考我的代碼如下:在父項目無法正常工作的情況下創建用戶控件類的新實例
MainPage.xaml中
<Grid x:Name="ContentPanel" Grid.Row="0">
<my:FullWebBrowser Name="TheBrowser" InitialUri="http://www.google.com" />
</Grid>
的FullWebBrowser正常工作,以及控制現在被命名爲「TheBrowser」的FullWebBrowser控制的導航和諸如此類的東西MainPage.xaml中用於MainPage.xaml.cs中。 由於某種原因,我不允許在其他導航到MainPage.xaml的頁面中調用TheBrowser,例如SharePage.xaml。爲什麼會這樣,是否有一種方法可以訪問名爲TheBrowser的FullWebBrowser以用於其他頁面?
爲了解決這個問題,我試圖在我的SharePage代碼中創建一個FullBrowserControl的新實例,並命名爲'browser'。需要注意的是,SharePage的目的是模仿默認的Windows Phone Internet Explorer共享頁面菜單項選項,以便我可以允許用戶通過電子郵件,文本或社交網絡共享當前網頁網址。
SharePage.xaml.cs
public partial class SharePage : PhoneApplicationPage
{
//new instance of FullWebBrowser
FullWebBrowser browser = new FullWebBrowser();
public SharePage()
{
InitializeComponent();
}
private void SocialNetworks_Click(object sender, RoutedEventArgs e)
{
ShareLinkTask shareLinkTask = new ShareLinkTask();
Uri shareUrl = new Uri(browser.currentUrl());
shareLinkTask.Title = "Shared Link!";
shareLinkTask.LinkUri = shareUrl;
shareLinkTask.Message = "Check out this link!";
shareLinkTask.Show();
}
private void Messaging_Click(object sender, RoutedEventArgs e)
{
SmsComposeTask smsComposeTask = new SmsComposeTask();
Uri shareUrl = new Uri(browser.currentUrl());
smsComposeTask.To = "";
smsComposeTask.Body = "Check out this link! " + shareUrl;
smsComposeTask.Show();
}
private void Email_Click(object sender, RoutedEventArgs e)
{
EmailComposeTask emailComposeTask = new EmailComposeTask();
Uri shareUrl = new Uri(browser.currentUrl());
emailComposeTask.Subject = "Link share from Quest internet browser";
emailComposeTask.Body = "Check out this link! " + shareUrl;
emailComposeTask.To = "";
emailComposeTask.Cc = "";
emailComposeTask.Bcc = "";
emailComposeTask.Show();
}
}
似乎在SharePage.xaml.cs創造FullWebBrowser的新實例運行不正常,因爲當我把代碼從每個SharePage.xaml.cs點擊事件並將其放置在MainPage.xaml.cs中(並將FullBrowserName更改爲'TheBrowser',因爲它在MainPage.xaml中命名,而不是在SharePage.xaml.cs中命名的'browser'),因此一切正常。我是不是正確地創建了usercontrol的新實例,還是應該做其他事情來讓我正確執行SharePage操作?
@Matt_Lacey所以你說,即使在我的SharePage.xaml.cs中創建這個外部用戶控件的新實例,也不會允許我在我的SharePage.xaml.cs代碼中訪問相同的功能,就像添加外部用戶控制到我的MainPage.xaml xaml代碼?這讓我感到困惑。如果是這樣,我應該如何以及在哪裏實例化這個外部用戶控件,以便在所有頁面中都可用(即使我在MainPage.xaml中定義了該頁面以在該頁面上呈現webbrowser)?謝謝你的迴應! – Matthew 2012-03-05 22:47:44
@Mthethew如果你在「SharePage」中創建它的一個新實例,那麼它將不會是同一個控件,所以試圖訪問它的屬性將是毫無意義的。讓我更新並擴展我的答案。 – 2012-03-06 00:01:13
@Matt_Lacey,實現很好!我真的很感謝你用這些術語解釋創建webbrowser控件的一個新實例,而不是傳遞url和實現querystring來傳遞currentUrl()方法。謝謝! – Matthew 2012-03-06 01:02:44