在我的应用程序中,当文件资源管理器中的“打开方式”显示扩展名为.txt的文件时,我使用OnFileActivated获取,在RichEditBox中显示此txt文件的文本并显示其中的路径应用程序的标题。放置标题的代码很好,因为在标题中放置了文件的路径,但是显示文件文本的代码不起作用。
我被引导过这个页面:http://grogansoft.com/blog/?p=1197
App.xaml.cs中的代码:
protected override void OnFileActivated(FileActivatedEventArgs args)
{
base.OnFileActivated(args);
var rootFrame = new Frame();
rootFrame.Navigated += OnNavigatedTo;
rootFrame.Navigate(typeof(MainPage), args);
Window.Current.Content = rootFrame;
Window.Current.Activate();
}
async void OnNavigatedTo(object sender, NavigationEventArgs e)
{
var args = e.Parameter as Windows.ApplicationModel.Activation.IActivatedEventArgs;
if (args != null)
{
if (args.Kind == Windows.ApplicationModel.Activation.ActivationKind.File)
{
var fileArgs = args as Windows.ApplicationModel.Activation.FileActivatedEventArgs;
string strFilePath = fileArgs.Files[0].Path;
var file = (StorageFile)fileArgs.Files[0];
await new MainPage().LoadTextFile(file);
}
}
}
用于在RichEditBox中显示文本的函数
public async Task LoadTextFile(StorageFile file)
{
string text = await FileIO.ReadTextAsync(file);
current_path = file.Path;
current_file = file.Name;
var appView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
appView.Title = current_path;
RichEditBox1.Document.SetText(TextSetOptions.None, text);
}
答案 0 :(得分:0)
这里有两个基本问题:
OnNavigatedTo
本身使用MainPage
虚拟方法,而不是使用Navigated
上的Frame
事件。MainPage
的全新副本 - 导航服务将为您执行此操作。只需在LoadTextFile
方法中调用OnNavigatedTo
方法。像这样:
// In MainPage.xaml.cs
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// Your code here...
}