Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TabItem-悬停时显示弹出窗口_C#_Wpf_Popup_Tabcontrol - Fatal编程技术网

C# TabItem-悬停时显示弹出窗口

C# TabItem-悬停时显示弹出窗口,c#,wpf,popup,tabcontrol,C#,Wpf,Popup,Tabcontrol,我有一个包含多个TabItems的TabControl,每个TabItem在内容区域中包含多个部分。当用户将鼠标悬停在任何选项卡上时,我希望显示一个弹出窗口,其中显示该选项卡中的分区列表,并允许用户单击该分区并导航到该分区 对于这个问题,我需要帮助的部分是当用户将鼠标悬停在每个选项卡上时关闭/打开弹出窗口。主要的症结是: 允许用户将光标从选项卡移动到弹出区域。一旦弹出窗口被打开,它将拒绝在TabItem MouseLeave上关闭 如果用户从一个选项卡移动到另一个选项卡,则上一个选项卡上的弹出窗

我有一个包含多个TabItems的TabControl,每个TabItem在内容区域中包含多个部分。当用户将鼠标悬停在任何选项卡上时,我希望显示一个弹出窗口,其中显示该选项卡中的分区列表,并允许用户单击该分区并导航到该分区

对于这个问题,我需要帮助的部分是当用户将鼠标悬停在每个选项卡上时关闭/打开弹出窗口。主要的症结是:

  • 允许用户将光标从选项卡移动到弹出区域。一旦弹出窗口被打开,它将拒绝在TabItem MouseLeave上关闭
  • 如果用户从一个选项卡移动到另一个选项卡,则上一个选项卡上的弹出窗口应关闭,新的弹出窗口应打开
  • 用户只需单击一次即可导航。这意味着他们不必为了显示另一个弹出窗口而从一个选项卡“点击”弹出窗口
  • 我的想法是公开一个DependencyProperty,它点击鼠标结束的测试选项卡,并触发弹出窗口

    为清晰起见进行了编辑:当将鼠标移动到选项卡上时,我会显示一个弹出窗口。当我将鼠标移离选项卡时,我希望弹出窗口关闭。它必须是一个弹出窗口(而不是工具提示),因为用户必须能够单击弹出窗口中的内容


    我已经对TabControl进行了子分类和重新模板化,但是我想获得一些关于如何关闭MouseLeave事件的弹出窗口的帮助。我已经触发了MouseLeave事件,但是当弹出窗口打开时,焦点会转移到弹出窗口,因此TabItem MouseLeave事件不会正确触发。

    您可以使用
    交互。从触发
    ,在鼠标离开弹出窗口时触发弹出窗口关闭。下面是一个简短的例子:

    <Popup Height="300" x:Name="MyPopup">
            <Label Content="MyLabel"></Label>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseLeave">
                    <ei:ChangePropertyAction TargetObject="{Binding ElementName=MyPopup}" PropertyName="IsOpen" Value="False"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
    </Popup>
    

    你希望我们做什么?在将鼠标移到选项卡上时,提供一些如何打开/关闭弹出窗口的帮助。不过,我可能会对此感到遗憾。。。请改进你的问题。你已经试过什么了?是否有一些代码,您可能想发布?你有什么具体问题吗?我们不会提供复制粘贴解决方案…添加了其他信息。我不是在寻找复制/粘贴解决方案,只是在鼠标离开时关闭弹出窗口时社区的一些输入。我不想不具有建设性,但这是一个质量问题。一个没有以问号结尾的句子的问题不是一个真正的问题,是吗?以后请记住这一点,这正是我需要的。感谢您的建设性意见:)
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"                  
    xmlns:ei="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"