C# 带有弹出/弹出项目详细信息的列表框

C# 带有弹出/弹出项目详细信息的列表框,c#,wpf,C#,Wpf,我想创建一个列表框,带有一个详细信息弹出窗口/工具提示类窗口。 情况如下: 项目清单 显示所选项目的详细信息 详细信息应显示在列表框外,并覆盖附近的所有控件 使用工具提示的问题是,它们会在一段时间后消失。使用弹出窗口的问题是,当窗口移动时,它们不会移动(?) 所以我只是想找到一些解决这个问题的方法 使用工具提示对象。它有自动定位和良好的图形风格的开箱即用 只需像这样使用它: toolTip.PlacementTarget = yourSelectedItem;

我想创建一个列表框,带有一个详细信息弹出窗口/工具提示类窗口。 情况如下:

  • 项目清单
  • 显示所选项目的详细信息
  • 详细信息应显示在列表框外,并覆盖附近的所有控件
使用工具提示的问题是,它们会在一段时间后消失。使用弹出窗口的问题是,当窗口移动时,它们不会移动(?)

所以我只是想找到一些解决这个问题的方法


使用工具提示对象。它有自动定位和良好的图形风格的开箱即用

只需像这样使用它:

        toolTip.PlacementTarget = yourSelectedItem;
        toolTip.Placement = PlacementMode.Right;
        toolTip.Content = {place whatever you need to display here};

可以使用IsOpen属性控制其可见性。

使用工具提示对象。它有自动定位和良好的图形风格的开箱即用

只需像这样使用它:

        toolTip.PlacementTarget = yourSelectedItem;
        toolTip.Placement = PlacementMode.Right;
        toolTip.Content = {place whatever you need to display here};

您可以使用IsOpen属性控制其可见性。

装饰器是为此类对象而构建的


也就是说,如果我这样做,我会将弹出窗口上的“StaysOpen”设置为false。因此,当用户单击其他地方时,它将自动消失(即当窗口移动时)。您是否真的看到您的用户在查看详细信息时如此频繁地移动窗口?沿着装饰者的路线走并不那么容易。它有它自己的复杂性。

装饰器是为类似的东西而设计的



也就是说,如果我这样做,我会将弹出窗口上的“StaysOpen”设置为false。因此,当用户单击其他地方时,它将自动消失(即当窗口移动时)。您是否真的看到您的用户在查看详细信息时如此频繁地移动窗口?沿着装饰者的路线走并不那么容易。它有它自己的复杂性。

好主意。不,他们通常不会移动窗户。但是如果他们这样做了,那看起来会很愚蠢。嘿,如果你把StaysOpen设置为false,那就很有趣了。即使你移动窗户,它也会保持打开状态。点击chrome不会被截获你可能有其他东西将其设置回IsOpen。我只是做了一个快速检查,点击WindowChrome肯定会隐藏它。添加一些源代码,我可能会给你一个更好的答案。我以前在几个地方做过类似的事情,所以我确信这种方法是有效的。是的,它是有效的,但需要更多的工作来调整弹出行为。工具提示为我做了这件事。因此,通过使用它,我能够更快地完成任务。这个弹出窗口提供了更好的控制和可能性,如果我将来遇到类似的情况,我会研究它。非常感谢。好主意。不,他们通常不会移动窗户。但是如果他们这样做了,那看起来会很愚蠢。嘿,如果你把StaysOpen设置为false,那就很有趣了。即使你移动窗户,它也会保持打开状态。点击chrome不会被截获你可能有其他东西将其设置回IsOpen。我只是做了一个快速检查,点击WindowChrome肯定会隐藏它。添加一些源代码,我可能会给你一个更好的答案。我以前在几个地方做过类似的事情,所以我确信这种方法是有效的。是的,它是有效的,但需要更多的工作来调整弹出行为。工具提示为我做了这件事。因此,通过使用它,我能够更快地完成任务。这个弹出窗口提供了更好的控制和可能性,如果我将来遇到类似的情况,我会研究它。非常感谢。谢谢你指出这一点。我将用新获得的知识尝试你的两个建议。我认为IsOpen是一个只读属性。我认为这行不通,它不行。它是有效的。我在我的应用程序中这样使用它。你是对的!!!而且它还有一个StaysOpen属性。这确实会起作用。有没有办法在XAML中使用它?我找不到。我可能不知道正确的语法…我不认为这完全可以用XAML实现,但我可能错了。当我使用这段代码时,我并没有完全使用XAML(它只是WinForms应用程序的一个WPF控件)。我将用新获得的知识尝试你的两个建议。我认为IsOpen是一个只读属性。我认为这行不通,它不行。它是有效的。我在我的应用程序中这样使用它。你是对的!!!而且它还有一个StaysOpen属性。这确实会起作用。有没有办法在XAML中使用它?我找不到。我可能不知道正确的语法…我不认为这完全可以用XAML实现,但我可能错了。当我使用这段代码时,我并没有完全使用XAML(它只是WinForms应用程序的一个WPF控件)。