相关疑难解决方法(0)

创建像Office 2010一样的动画闪屏

如何使用C#创建Office 2010中的动画启动画面?

c# user-interface splash-screen

12
推荐指数
1
解决办法
3万
查看次数

从Windows窗体应用程序打开另一个线程中的WPF窗口

好的,我应该说这个我不确定这是否是解决这个问题的正确方法,但......

基本上我在WPF中创建了一个窗口,用于在我的应用程序中显示通知(有点像Outlook新邮件通知).我想尝试在它自己的线程中显示这个窗口(它可能在将来做一些工作).

我使用WPF创建了Window,因为它在处理AlwaysOnTop和Fading In和Out等方面更加出色.

显示通知的应用程序是3.5 Windows窗体应用程序.我见过类似于这个SOF的例子:C#winforms启动(Splash)表单没有隐藏在一个不同的线程中显示一个Form但是我无法用WPF窗口启动一个新的Message Loop.

我试过在新线程中调用Notification.Show(),但Window永远不会显示.

  1. 是否有可能在它自己的线程中显示这个WPF?

  2. 为什么我看到一些资源说您不应该在单独的线程中显示任何UI?

c# wpf multithreading winforms

8
推荐指数
1
解决办法
2万
查看次数

如何在c#中的backgroundworker中打开另一个窗口窗体

我需要在 backgroundworker 中运行一个耗时的过程,在这个过程中我也需要打开一个窗口。一切正常,但是当我在该过程中调用 UI 时,它不允许我在该新窗口中工作,它只显示等待,当我取消后台工作进程时,它也不会取消,尽管我启用了 workersupportcancel。这是我的代码

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        BackgroundWorker worker = sender as BackgroundWorker;
        runCheck();    
    }

    private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        if (e.Error != null)
        {
            MessageBox.Show(e.Error.Message);
        }           
    }
    private void newBtncheck_Click(object sender, RibbonControlEventArgs e)
    {
        backgroundWorker1.RunWorkerAsync();
    }       

 private void newBtncheck_Click(object sender, RibbonControlEventArgs e)
    {
        backgroundWorker1.RunWorkerAsync();
    }
    private void btnStop_Click(object sender, RibbonControlEventArgs e)
    {
        this.backgroundWorker1.CancelAsync();
    }
Run Code Online (Sandbox Code Playgroud)

c# vsto

1
推荐指数
1
解决办法
5125
查看次数