每当我的WPF应用启动时,JumpList都会重置

埃里克

我在使用WPF时遇到了一些麻烦。当我将标签添加到我的app.xaml中时,我可以在跳转列表中看到该任务,但是当我尝试将项目添加到“最近的文件”列表中时,我添加的新项目就不会显示出来。如果我创建一个名为“ Recent”的CustomCategory并手动添加一个JumpTask,它将显示出来。但是,如果我重新启动应用程序,则新添加的JumpTask不再存在,仅是测试任务。

澄清

最初,我对JumpList.AddToRecentCategory根本不起作用。它永远不会添加到最近的列表中。Gayot Fow帮助解决了这一问题。但是问题仍然存在,如果我手动添加具有自定义类别的JumpTask,则所有最近的文件都将清除,并且如果我打开文件并调用addToRecent,它不会显示。如果我删除在xaml中声明的JumpTask,则显示最近的文件。

XAML:

<JumpList.JumpList>
    <JumpList ShowRecentCategory="True">

        <JumpTask Title="Test" Description="Test"
                  Arguments="/test" CustomCategory="Tasks" />
    </JumpList>

</JumpList.JumpList>

C#代码添加最新项目

var jumpList = JumpList.GetJumpList(Application.Current);
if (jumpList == null) return;

//create a jump task
var jt = new JumpTask();

jt.Title = System.IO.Path.GetFileNameWithoutExtension(FileName);
jt.Description = jt.Title;
jt.CustomCategory = jt.Title;
jt.ApplicationPath = FileName;

//JumpList.AddToRecentCategory(jt);

jt.CustomCategory = "Recent";
jumpList.JumpItems.Add(jt);

jumpList.Apply();

无论是从Visual Studio 2013(更新2)运行应用程序,还是从调试目录运行exe,都会发生这种情况。有谁知道为什么这行不通?

我读过一些有关ClickOnce部署的应用程序无法正常工作的信息,但是在部署之前我什至无法使它正常工作。

任何帮助,将不胜感激,谢谢。

更新

Gayot Fow的答案引导我使用静态方法解决问题

JumpList.AddToRecentCategory(jt);

什么也没做。

我将AddToRecent代码更改如下:

var jumpList = JumpList.GetJumpList(Application.Current);
if (jumpList == null) return;


string title = System.IO.Path.GetFileNameWithoutExtension(FileName);
string programLocation = Assembly.GetCallingAssembly().Location;

var jt = new JumpTask
{
    ApplicationPath = programLocation,
    Arguments = FileName,
    Description = FileName,
    IconResourcePath = programLocation,
    Title = title
};
JumpList.AddToRecentCategory(jt);


jumpList.Apply();

问题

尽管最近文件的问题已解决,但我仍然无法使其与名为“任务”的自定义类别共存

在我的应用启动时,我将此代码称为:

var jumpList = JumpList.GetJumpList(Application.Current);
if (jumpList != null)
{

    string title = "New Document";
    string programLocation = Assembly.GetCallingAssembly().Location;

    var jt = new JumpTask
    {
        ApplicationPath = programLocation,
        Arguments = "/new",
        Description = title,
        IconResourcePath = programLocation,
        Title = title
    };
    jumpList.JumpItems.Add(jt);

    jumpList.Apply();
}

调用此方法后,“最近”类别将消失,并且任何添加最近项的调用均不执行任何操作。我确实看到了“新文档”任务,但:/

我是完全错误的做法吗?谢谢

盖奥特·福

这是跳转列表的工作代码段...

在App.xaml中...

<JumpList.JumpList>
    <JumpList
    ShowFrequentCategory="False" 
    ShowRecentCategory="False"
    JumpItemsRejected="OnJumpItemsRejected" 
    JumpItemsRemovedByUser="OnJumpItemsRemoved">
    </JumpList>
</JumpList.JumpList>

在App.xaml.cs中

    private void OnJumpItemsRejected(object sender, JumpItemsRejectedEventArgs e){}
    private void OnJumpItemsRemoved(object sender, JumpItemsRemovedEventArgs e){}

在代码中...

    public object PopulateJumpList(string directoryName)
    {
        try
        {
            string programLocation = Assembly.GetCallingAssembly().Location;
            var di = new DirectoryInfo(directoryName);
            var jt = new JumpTask
            {
                ApplicationPath = programLocation,
                Arguments = directoryName,
                Description = "Run at " + directoryName,
                IconResourcePath = programLocation,
                Title = di.Name
            };
            JumpList.AddToRecentCategory(jt);
            return jt;
        }
        catch (Exception ex)
        {
            return ex;
        }
    }

此方法创建以下形式的跳转任务:

full executable path of the program |=> name of the directory where it was invoked

...这是通过静态方法AddToRecentCategory添加到最新类别的。它与将任务添加到跳转列表的本地副本中的代码形成对比。必须为应用程序路径提供可执行文件的标准名称。另外,如注释中所述,当它安置在其自己的安装目录中时,它似乎最好地工作,并且每次可执行文件被覆盖时,跳转列表都将被删除。在调试模式下(相对于vshost.exe)使用它不能可靠地工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

每当我的WPF应用启动时,JumpList都会重置

来自分类Dev

每当我启动时,Eclipse都会自动关闭

来自分类Dev

每当我的手机屏幕保护程序启动时,我的FLUTTER视频应用都会关闭视频

来自分类Dev

每当我的while循环循环时,计数器都会重置吗?

来自分类Dev

每当我启动我的应用程序时,都会弹出GooglePlayGames加载徽标

来自分类Dev

每当我启动vim时,它都会以为我按了'd'。如何停止这种行为?

来自分类Dev

每当我启动Word时,都会显示一个配置窗口。

来自分类Dev

每当我在Unity的搜索中进行搜索时,程序都会启动

来自分类Dev

每当我重新启动 shell 时,shell 反向搜索都会失败

来自分类Dev

每当我按下“后退”按钮时,应用都会停止

来自分类Dev

每当我发出 postgresql 查询时,Appmetrics-dash 都会使应用程序崩溃

来自分类Dev

每当我的HP Streambook重新启动时,Grub就会加载而不是Ubuntu

来自分类Dev

每次重新启动时,我的Debian / proc / cmdline都会重置

来自分类Dev

每当我离开并重新进入课程时,Visual Basic都会将变量重置为0

来自分类Dev

每当我插入另一个键盘时,按键重复率都会重置为某个值

来自分类Dev

每当我更新记录时,PHP都会添加空格

来自分类Dev

每当我修改位置时,ip地址都会更改

来自分类Dev

每当我执行代码时都会收到“-317629566”

来自分类Dev

每次系统重新启动时,后台都会重置

来自分类Dev

每当我在两个标签之间切换时,都会实例化WPF TabControl MVVM ViewModel

来自分类Dev

每当我的计算机重新启动时,如何运行命令提示符?

来自分类Dev

我在Windows上使用jupyter笔记本,ipython 3。每当我启动python 3时,我都会收到“内核死机”消息

来自分类Dev

每次应用启动时 FirebaseRecyclerAdapter 都会崩溃

来自分类Dev

-bash:每当我启动终端时,[:缺少`]'

来自分类Dev

每当我键入某个命令时启动的脚本

来自分类Dev

每当我关闭我的应用程序时,电子邮件都会成功发送

来自分类Dev

当我的应用启动时,如何在Xamarin表单中调用此异步方法?

来自分类Dev

每当我尝试编译javascript代码时,我都会收到语法错误

来自分类Dev

每当我运行tomcat时,我都会收到NoSuchBeanCreation错误

Related 相关文章

  1. 1

    每当我的WPF应用启动时,JumpList都会重置

  2. 2

    每当我启动时,Eclipse都会自动关闭

  3. 3

    每当我的手机屏幕保护程序启动时,我的FLUTTER视频应用都会关闭视频

  4. 4

    每当我的while循环循环时,计数器都会重置吗?

  5. 5

    每当我启动我的应用程序时,都会弹出GooglePlayGames加载徽标

  6. 6

    每当我启动vim时,它都会以为我按了'd'。如何停止这种行为?

  7. 7

    每当我启动Word时,都会显示一个配置窗口。

  8. 8

    每当我在Unity的搜索中进行搜索时,程序都会启动

  9. 9

    每当我重新启动 shell 时,shell 反向搜索都会失败

  10. 10

    每当我按下“后退”按钮时,应用都会停止

  11. 11

    每当我发出 postgresql 查询时,Appmetrics-dash 都会使应用程序崩溃

  12. 12

    每当我的HP Streambook重新启动时,Grub就会加载而不是Ubuntu

  13. 13

    每次重新启动时,我的Debian / proc / cmdline都会重置

  14. 14

    每当我离开并重新进入课程时,Visual Basic都会将变量重置为0

  15. 15

    每当我插入另一个键盘时,按键重复率都会重置为某个值

  16. 16

    每当我更新记录时,PHP都会添加空格

  17. 17

    每当我修改位置时,ip地址都会更改

  18. 18

    每当我执行代码时都会收到“-317629566”

  19. 19

    每次系统重新启动时,后台都会重置

  20. 20

    每当我在两个标签之间切换时,都会实例化WPF TabControl MVVM ViewModel

  21. 21

    每当我的计算机重新启动时,如何运行命令提示符?

  22. 22

    我在Windows上使用jupyter笔记本,ipython 3。每当我启动python 3时,我都会收到“内核死机”消息

  23. 23

    每次应用启动时 FirebaseRecyclerAdapter 都会崩溃

  24. 24

    -bash:每当我启动终端时,[:缺少`]'

  25. 25

    每当我键入某个命令时启动的脚本

  26. 26

    每当我关闭我的应用程序时,电子邮件都会成功发送

  27. 27

    当我的应用启动时,如何在Xamarin表单中调用此异步方法?

  28. 28

    每当我尝试编译javascript代码时,我都会收到语法错误

  29. 29

    每当我运行tomcat时,我都会收到NoSuchBeanCreation错误

热门标签

归档