我的Window
包含多个Buttons
,所有这些都应该在PDF
内显示不同的Window
。要执行此操作,我在Frame
上使用Window
,我在使用中显示Page
;
private void OnPDFButton1Click(object sender, RoutedEventArgs e)
{
navigationFrame.Navigate(new Uri("View/PDFPage.xaml", UriKind.Relative));
}
要在PDF
内显示Page
,我会利用它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.xll),OnPageLoad
永远不会被解雇,因为(很明显){{1}已经加载了之前的Page
。
我的问题是如何在PDF
上通过我的主PDFPage
调用一个事件来告诉Window
导航到新的PDFWebBrowser
?基本上,我如何将页面的Uri
事件的内容移动到可以在Loaded
的{{1}}点击中调用的方法。
答案 0 :(得分:1)
将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!");
}
}
答案 1 :(得分:1)
你可以使用OnNavigatedTo。我认为每次用户导航到该页面时都会调用它。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// something to do
}
答案 2 :(得分:1)
您可以从另一个方法从另一个事件处理程序调用事件处理程序。让我举个例子:
private void YourAnotherButton(object sender, RoutedEventArgs e)
{
OnPageLoad(null, null);
}
您的目标只是设置PDF文件的必要地址。