[英]Calling Loaded Event of Page From Window C# WPF
我有一个包含多个Buttons
的Window
,所有这些Buttons
都应该在Window
内部显示不同的PDF
。 为此,我在Window
上使用一个Frame
,在其中显示Page
;
private void OnPDFButton1Click(object sender, RoutedEventArgs e)
{
navigationFrame.Navigate(new Uri("View/PDFPage.xaml", UriKind.Relative));
}
要在Page
内显示PDF
,我要利用它的Loaded
事件。
private void OnPageLoad(object sender, RoutedEventArgs e)
{
var _buttonPathDataService = new ButtonPathDataService();
try
{
var pdfURI = new Uri(_buttonPathDataService.GetButtonPath(Properties.Settings.Default.VideoMode));
PDFWebBrowser.Navigate(pdfURI);
}
catch (Exception ex)
{
MessageBox.Show("No PDF linked!");
}
}
我遇到的问题是,说用户单击了Button
上的一个以显示PDF
,这很好。 但是,如果用户单击另一个Button
,因为它使用的是同一Page
(PDFPage.xaml),则不会触发OnPageLoad
是因为(显然)该Page
已经为先前的PDF
加载。
我的问题是如何从主Window
告诉PDFWebBrowser
导航到新的Uri
如何在PDFPage
上调用事件? 本质上,我将如何将页面的Loaded
事件的内容移动到可以在Window
单击Button
调用的方法。
将pdf加载代码带到另一个方法,然后从另一个按钮调用它:
private void OnPageLoad(object sender, RoutedEventArgs e)
{
Load();
}
public void Load()
{
var _buttonPathDataService = new ButtonPathDataService();
try
{
var pdfURI = new Uri(_buttonPathDataService.GetButtonPath(Properties.Settings.Default.VideoMode));
PDFWebBrowser.Navigate(pdfURI);
}
catch (Exception ex)
{
MessageBox.Show("No PDF linked!");
}
}
您可以使用OnNavigatedTo。 我认为每次用户导航到该页面时都会调用它。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// something to do
}
您可以从另一个方法的另一个事件处理程序调用一个事件处理程序。 让我举一个例子:
private void YourAnotherButton(object sender, RoutedEventArgs e)
{
OnPageLoad(null, null);
}
您的目标仅仅是设置PDF文件的必要地址。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.