BringWindowToTop,SetForegroundWindow,SwitchToThisWindow,SetWindowPos,ShowWindow所有被描述为示出与激活的窗口.
它们之间有什么真正的区别?何时以及为什么BringWindowToTop首选SetForegroundWindow,或者SwitchToThisWindow甚至SetWindowPos将标志设置为激活和显示?
之前,我能够在Visual Studio 2013下运行特定项目的单元测试.这最近停止了工作,没有对项目进行重大改变,不幸的是,我不记得它什么时候做了最后一次工作,也没有改变.但是,对项目本身的任何修改都是最小的(一个或两个新方法),并且不涉及任何配置文件更改或类似的频繁报告的问题.我相信Visual Studio(可能是最近的更新)或插件或第三方软件的更改导致了以下问题.
加载项目时,一分钟后,"输出"窗口中的"测试"输出显示:
------发现测试开始------
无法初始化客户端代理:无法连接到测试进程vstest.discoveryengine.x86.exe.
==========发现测试结束:0找到(0:00:59.8853102)==========
类似于以前报告的问题,只是调试停止工作,以管理员身份运行Visual Studio似乎"解决"了这个问题.然而,这只是表明问题可能与访问权限有关.
我发现了一个相关的Microsoft Connect错误报告,该报告还暗示了由第三方应用程序引起的问题.显然vstest.discoveryengine.x86.exe使用命名管道进行通信devenv.exe.另一个应用程序可能会使用该请求,从而导致Visual Studio连接失败.但是,验证哪些命名管道正在使用中,我没有找到任何立即明显的罪魁祸首.我还想象连接可能由于其他原因而失败.
启用日志记录后 devenv.exe,vstest.executionengine.exe和vstest.discoveryengine.exe我发现与在devenv的日志中发现引擎但下列情况除外:
E, 10048, 42, 2014/12/22, 01:47:13.683, 63637924754, devenv.exe, TestRunnerServiceClient: Could not connect to test runner service within the available time 60000. Reason:System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.pipe://steven-flip/vstest.discoveryengine/8232 that could accept the message. This is often caused by an incorrect address or SOAP action. See …Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,我在其中与每个正在运行的应用程 现在,我需要一种获取窗口z顺序的方法.例如,如果Firefox和记事本正在运行,我需要知道哪一个在前面.
有任何想法吗?除了为每个应用程序的主窗口执行此操作外,我还需要为其子窗口和姐妹窗口(属于同一进程的窗口)执行此操作.
digraph G {
a -> b [ label = "foo" ];
a -> b [ label = "bar" ];
}
Run Code Online (Sandbox Code Playgroud)
这将在'a'和'b'节点之间创建两条边.有没有办法只有一条边(将它们分组)?
是否可以通过API或Google Firebase上的其他非交互方法创建新的托管项目?
我已经尝试使用带有令牌的Firebase工具,但它表示只能在Firebase控制台上创建新项目.
一些上下文:我的项目允许用户在线创建静态网站,我们正在寻找托管这些网站的解决方案.Firebase将是一个很好的解决方案,但前提是我可以使用Firebase项目将用户的新项目集成到我的系统中.
我已经玩了很长一段时间的WPF,但今天我第一次需要MultiBinding在另一个内部嵌套,类似于:
<MultiBinding>
<Binding />
<MultiBinding>
<Binding />
<Binding />
</MultiBinding>
</MultiBinding>
Run Code Online (Sandbox Code Playgroud)
我得到一个异常,表明框架不允许它:
XamlParseException未处理:向类型'System.Collections.ObjectModel.Collection(System.Windows.Data.BindingBase)'的集合添加值引发异常.
InnerException更明确的是:
BindingCollection不支持MultiBinding类型的项.只允许绑定.
所以挖掘网络以获取更多信息,我偶然发现了这个Microsoft Connect问题,这正是我的问题所在.
感谢您的反馈.WPF今天不支持这一点.多年来一直要求使用此功能(最近一次是本月早些时候 - 请参阅https://connect.microsoft.com/WPF/feedback/details/650164/nested-multibinding).我们将继续考虑将来的版本.
现在我已经平静下来,我不会轻松.我仍然需要这个,我如何嵌套MultiBindings?
在C#中创建事件时,通常的做法是从.NET Framework指南中的示例中获取如下定义:
public class CustomEventArgs : EventArgs
{
public CustomEventArgs(string s)
{
msg = s;
}
private string msg;
public string Message
{
get { return msg; }
}
}
...
public delegate void CustomEventHandler(object sender, CustomEventArgs a);
Run Code Online (Sandbox Code Playgroud)
通常,我创建的事件根本不需要任何参数.我通常只使用Action事件处理程序类型来实现它.
public event Action LogonScreenExited;
Run Code Online (Sandbox Code Playgroud)
我想知道为什么人们想要遵循"传统"模式是有任何理由的.也许这样的事件表明设计存在缺陷?我使用的理由Action是YAGNI,为什么在不使用时实现某些东西(甚至显示意图)?
在MSTest中创建通用基本测试类并从中继承时,我无法运行所有继承类的测试.

BaseDependencyPropertyFactoryTest位于Whathecode.PresentationFramework.Tests程序集中.它是通用基类.(BaseDependencyPropertyFactoryTest <TTestClass>)
两个程序集都有一个继承自此基类的测试,名为DependencyPropertyFactoryTest.所有继承的类都传递一个特定的类型参数.
[TestClass]
public class DependencyPropertyFactoryTest
: BaseDependencyPropertyFactoryTest<ASpecificClass>
{
}
Run Code Online (Sandbox Code Playgroud)
似乎只运行与基类位于同一程序集中的继承测试.Whathecode.PresentationFramework.Aspects.Tests程序集中的继承测试似乎完全被忽略.
我究竟做错了什么?如果需要,我可以上传所有必需的源代码,但是你需要PostSharp才能进行方面组装.
作为测试,我尝试将一个测试添加到方面程序集中的继承测试类,该程序集调用基本测试类中的所有测试.
[TestMethod]
public void AllBaseTests()
{
ClrGetterSetterTest();
DependencyPropertyGetterSetterTest();
}
Run Code Online (Sandbox Code Playgroud)
这给出了以下结果.奇怪的是,这个测试被执行了!目前,这可能是一种至少运行它们的方法,但当然我每次在基类中添加额外的测试时都不想编辑这个测试.

为什么跳过这些基础测试,为什么指示'已中止'?
看到HTML5/JS Windows 8 GUI的第一个公告,大量的WPF和Silverlight开发人员感到恐慌.
这些技术的未来是什么?新旧技术如何合作?我们是否应该很快开始使用全新的框架开发?
有没有人有官方消息来澄清情况?
我安装了最新的Windows 7 SDK,其中包含WPF Performance Profiler.
启动我的应用程序时,Perforator会显示一些数据,但Visual Profiler不会显示任何内容.时间线移动但不收集数据......