我有一个控件,它使用一个带有一些WPF控件的弹出窗口,并且StaysOpen ="True".问题是当应用程序没有焦点时单击弹出窗口,应用程序无法获得焦点.我做了一些研究,似乎这可能是因为弹出窗口用于菜单,所以他们没有连接所有正确的Windows消息处理程序.这是演示问题的准系统示例:
<Window x:Class="TestWindowPopupBehavior.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:TestWindowPopupBehavior="clr-namespace:TestWindowPopupBehavior" Title="MainWindow" Height="350" Width="525">
<Grid>
<Popup StaysOpen="True" IsOpen="True" Placement="Center">
<ListBox>
<TextBlock>123</TextBlock>
<TextBlock>123</TextBlock>
<TextBlock>123</TextBlock>
<TextBlock>123</TextBlock>
<TextBlock>123</TextBlock>
<TextBlock>123</TextBlock>
</ListBox>
</Popup>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
我期望在步骤4中发生的是应用程序将获得焦点,并且列表框将选择新项目.
这个问题是否有任何变通方法,或者我遗漏的一些明显的东西?我正在考虑用完整的窗口重写整个弹出代码,并重新实现我们的行为,但这似乎很复杂只是为了修复这样的小问题.
我正在转换我的Tournament Organizer软件,它允许创建和操作Double Elimination Tournaments,使用MVVM设计模式,以便更容易测试.在这样做的时候,我将'模型'与UI中直接操作括号结构的一些代码分开.
这将是我为处理锦标赛而编写的第三次软件迭代.第一个是用PHP编写的,并将数据存储在数据库中.第二个版本是我制作的WPF版本,它将数据存储在内存中,然后将其序列化为XML文件.但是,在这两个版本中,我认为实施的各个方面都不干净,而且看起来他们违反了DRY法则.
如果您从头开始创建数据结构以处理双重消除括号,您将如何做?
请注意,它不需要能够在算法上自动生成括号(从4/8/16/32人的预制双重消除加载是我现在正在做的),只是主要的用例设置比赛的获胜者并通过括号'推进'他们.
编辑:为了说清楚,数据结构需要处理双重淘汰赛,因此,一场比赛的胜利者最终可能会与另一场比赛的输家竞争.
我无法提出有效的SQL查询来处理以下情况:
假设我们有一个包含两列的表
groupId : int
value : float
Run Code Online (Sandbox Code Playgroud)
桌子很大(几百万行).每个"groupId"有不同数量的"值" - 比如介于100和50.000之间.所有浮点值都大于或等于零,但在其他方面无限制.
对于给定的groupId,查询应返回通过降低相似性排序的所有其他组,其中"相似"被定义为两组中所有可能的30对值之间的最小欧几里德距离.
相似性的定义是杀死我的原因.我认为,对于如上定义的计算相似性,naiive算法是O(n ^ 2).现在我正在寻找重新定义"相似性"或上述有效实现的想法.我可以想象一个涉及k-最近邻居的解决方案,比如PostGis几何最近邻居或者可能是最大的常见子序列算法(虽然我需要后者的"模糊"实现,因为"值"几乎不会完全相等) .
我们目前正在使用mySQL以防万一.
干杯,
Sören
Run Code Online (Sandbox Code Playgroud) 最近,SourceSafe与visual studio的集成开始表现不佳,因为我们已经移动了,而SourceSafe"服务器"位于VPN上,经历了一个缓慢的连接.这使得在visual c ++ 6中加载大型项目需要5分钟以上,因为它必须与每个项目的"服务器"进行通信.此外,有一些错误在集成中是危险的(某些共享项目的自动检出将在分支文件的错误版本上获得最新版本).这导致我想要禁用SourceSafe集成,但是我没有找到任何菜单选项或卸载选项.谷歌已报告了一些注册表调整,但似乎没有一个工作.
有没有人知道从Visual C++ 6中删除SourceSafe集成的简单方法,而不是完全卸载SourceSafe?
我有一个应用程序,我正在尝试调试崩溃.但是,由于以下几个原因很难检测到问题:
崩溃,我的意思是以下例外:
0xC0000005: Access violation reading location 0x00000000.
Run Code Online (Sandbox Code Playgroud)
您将使用什么策略来诊断此问题?
到目前为止我所做的是从我的程序中删除尽可能多的代码,直到我得到最小的导致崩溃的代码.它似乎发生在与项目静态链接的代码中,所以这也无济于事.