Stackpanel IsMouseOver为False - 当鼠标超过stackPanel项目之间的间隙时

Mar*_*rty 4 c# wpf xaml

我有以下WPF控件

在此输入图像描述

当应用程序运行时,它看起来像这样.

在此输入图像描述

问题是 - 当鼠标位于按钮之间时,弹出窗口是关闭的.(U,B和NB按钮之间的差距)

正如您所看到的 - Popup.IsOpen属性绑定到stackPanel - IsMouseOver

我怎么解决这个问题?因此当我的鼠标位于所提到的按钮之间时,Popup会打开吗?(最好没有任何代码隐藏)

Row*_*ear 6

将StackPanel设置为Transparent(或任何适合您的颜色).出于某种原因,设置背景画笔(甚至设置为透明)允许IsMouseOver按预期工作.可能有一些WPF魔术与布局和渲染优化.

    <Grid>
        <StackPanel x:Name="ThePanel" Background="Transparent">
            <TextBox Margin="5">WOOT</TextBox>
            <TextBox Margin="5">WOOT</TextBox>
            <TextBox Margin="5">WOOT</TextBox>
        </StackPanel>

        <Popup IsOpen="{Binding ElementName=ThePanel, Path=IsMouseOver, Mode=OneWay}">
            <!--stuff-->
        </Popup>
    </Grid>
Run Code Online (Sandbox Code Playgroud)