小编Fry*_*Guy的帖子

单击时,WPF Popup不会导致应用程序被聚焦

我有一个控件,它使用一个带有一些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)
  1. 运行该应用程序.
  2. 与列表框交互,这应该可以正常工作.
  3. 切换到另一个应用程序
  4. 在应用程序未处于活动状态时单击列表框.什么都没发生
  5. 单击列表框外部的应用程序.
  6. 单击列表框.它现在正在运作.

我期望在步骤4中发生的是应用程序将获得焦点,并且列表框将选择新项目.

这个问题是否有任何变通方法,或者我遗漏的一些明显的东西?我正在考虑用完整的窗口重写整个弹出代码,并重新实现我们的行为,但这似乎很复杂只是为了修复这样的小问题.

wpf popup

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

双重淘汰赛的数据结构

我正在转换我的Tournament Organizer软件,它允许创建和操作Double Elimination Tournaments,使用MVVM设计模式,以便更容易测试.在这样做的时候,我将'模型'与UI中直接操作括号结构的一些代码分开.

这将是我为处理锦标赛而编写的第三次软件迭代.第一个是用PHP编写的,并将数据存储在数据库中.第二个版本是我制作的WPF版本,它将数据存储在内存中,然后将其序列化为XML文件.但是,在这两个版本中,我认为实施的各个方面都不干净,而且看起来他们违反了DRY法则.

如果您从头开始创建数据结构以处理双重消除括号,您将如何做?

请注意,它不需要能够在算法上自动生成括号(从4/8/16/32人的预制双重消除加载是我现在正在做的),只是主要的用例设置比赛的获胜者并通过括号'推进'他们.

编辑:为了说清楚,数据结构需要处理双重淘汰赛,因此,一场比赛的胜利者最终可能会与另一场比赛的输家竞争.

c# tdd mvvm tournament data-structures

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

SQL高效的最近邻查询

我无法提出有效的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)

sql nearest-neighbor

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

从Visual Studio 6中删除SourceSafe集成

最近,SourceSafe与visual studio的集成开始表现不佳,因为我们已经移动了,而SourceSafe"服务器"位于VPN上,经历了一个缓慢的连接.这使得在visual c ++ 6中加载大型项目需要5分钟以上,因为它必须与每个项目的"服务器"进行通信.此外,有一些错误在集成中是危险的(某些共享项目的自动检出将在分支文件的错误版本上获得最新版本).这导致我想要禁用SourceSafe集成,但是我没有找到任何菜单选项或卸载选项.谷歌已报告了一些注册表调整,但似乎没有一个工作.

有没有人知道从Visual C++ 6中删除SourceSafe集成的简单方法,而不是完全卸载SourceSafe?

visual-sourcesafe visual-c++-6 visual-studio

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

如何在应用程序退出时诊断访问冲突

我有一个应用程序,我正在尝试调试崩溃.但是,由于以下几个原因很难检测到问题:

  • 崩溃发生在关机时,这意味着有问题的代码不在堆栈中
  • 崩溃只发生在发布版本中,意味着符号不可用

崩溃,我的意思是以下例外:

0xC0000005: Access violation reading location 0x00000000.
Run Code Online (Sandbox Code Playgroud)

您将使用什么策略来诊断此问题?

到目前为止我所做的是从我的程序中删除尽可能多的代码,直到我得到最小的导致崩溃的代码.它似乎发生在与项目静态链接的代码中,所以这也无济于事.

c++ wtl

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