gpt4 book ai didi

c# - Windows 应用商店应用程序中的文件关联,我做错了什么?

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:35 25 4
gpt4 key购买 nike

我遵循了 msdn 教程和另一个教程,但我不知道我做错了什么。在 app.xaml.cs 中,我有代码

protected override void OnFileActivated(FileActivatedEventArgs args)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new Frame();
}

var p = rootFrame.Content as MainPage;
p.FileEvent = args;
Window.Current.Activate();
}

在 MainPage.xaml.cs 中我有代码

private FileActivatedEventArgs _fileEventArgs = null; 
public FileActivatedEventArgs FileEvent
{
get { return _fileEventArgs; }
set { _fileEventArgs = value; }
}

    private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
//get the args
if (FileEvent != null && FileEvent.Files.Count > 0)
{
titleText.Text = FileEvent.Files[0].Path.ToString();
}
}

在 this.InitializeComponent() 之后在 MainPage 构造函数中调用。我不确定如何调试它。当我双击与应用程序关联的 mp3 文件时,应用程序打开但没有启动,并且文件有等待指针图标,直到我关闭应用程序,然后我收到一条错误消息,指出应用程序没有启动在规定的时间内。如果当我单击该文件时该应用程序已经打开,则没有任何反应,而当我关闭该应用程序时它显示远程过程调用失败。

最佳答案

我找到了答案,我已将入口点置于 MainPage.xaml,但将其更改为 App.xaml.cs 修复了它,因此它实际上调用了 OnFileActivated()。我还将 OnFileActivated 代码更改为

    protected override void OnFileActivated(FileActivatedEventArgs args)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame == null)
{
rootFrame = new Frame();
Window.Current.Content = rootFrame;
}
if (rootFrame.Content == null)
{
if (!rootFrame.Navigate(typeof(MainPage)))
{
throw new Exception("Failed to create initial page");
}
}
var p = rootFrame.Content as MainPage;
if (p != null) p.FileEvent = args;
p.MainPage_Loaded(null, null);
Window.Current.Activate();
}

从 App.xaml.css 调用 MainPage.xaml.cs 中的公共(public)方法 p.MainPage_Loaded() 是最后一步,它允许我在应用程序已经打开的情况下使用该方法而无需创建新框架。

关于c# - Windows 应用商店应用程序中的文件关联,我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com