私はこの問題に問題があったので、助けが必要です。親プロジェクトの外部に定義されたユーザーコントロールを実装している親プロジェクトがあります。 FullWebBrowserという名前のユーザーコントロール(Webブラウザーコントロール)が正しく機能しているMainPage.xamlに読み込まれますが、このユーザーコントロールの新しいインスタンスを親プロジェクトの別のページ(NavigatedToから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での使用方法 何らかの理由で、私は、SharePage.xamlのように、MainPage.xamlからナビゲートされている他のページでTheBrowserを呼び出すことはできません。なぜそうですか、これらの他のページで使用するためにTheBrowserというFullWebBrowserにアクセスする方法はありますか?
この問題を回避するために、私はSharePageコードの背後にFullBrowserControlの新しいインスタンスを作成しようとしました、そして、それを「ブラウザ」という名前にしました。注意するには、SharePageの目的は、既定のWindows Phone Internet Explorer共有ページのメニュー項目オプションを模倣して、ユーザーが電子メール、テキスト、またはソーシャルネットワークを通じて現在のWebページのURLを共有できるようにすることです。
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からコードを取る際にクリックのでSharePage.xaml.csにFullWebBrowserの新しいインスタンスを作成すると、正しく動作していないようですMainPage.xaml.csに配置し、SharePage.xaml.csに名前が付けられているように 'browser'ではなく、MainPage.xamlに指定されているようにFullBrowserNameを 'TheBrowser'に変更します)、すべて正常に動作しています。私は適切にusercontrolの新しいインスタンスを作成していませんか、私は正しくSharePageアクションを実行させる何かをしている必要がありますか?
@Matt_Laceyだから、私のSharePage.xaml.csでこの外部ユーザコントロールの新しいインスタンスを作成しても、SharePage.xaml.csコードの同じ機能にアクセスすることはできません私のMainPage.xaml xamlコードへの外部ユーザーコントロールそれは私には混乱しています。もしそうなら、(たとえ私がMainPage.xamlで定義されていても、そのページ上のWebブラウザをレンダリングする場合でも)この外部ユーザコントロールをどのようにしてすべてのページで使用できるようにインスタンス化する必要がありますか?途中であなたの応答をありがとう! – Matthew
@Matthew "SharePage"に新しいインスタンスを作成すると、それは同じコントロールにならないので、そのプロパティにアクセスしようとすると無意味になります。私の答えを更新して広げてください。 –
@Matt_Laceyその実装は素晴らしいです! URLを渡さないwebbrowserコントロールの新しいインスタンスを作成し、currentUrl()メソッドを渡すためのクエリー・ストリングの実装について、これらの用語で説明することに本当に感謝します。ありがとう! – Matthew