代码之家  ›  专栏  ›  技术社区  ›  Berryl

弹出触发器未按预期工作

  •  0
  • Berryl  · 技术社区  · 16 年前

    我在一个网格中有两个控件,一个椭圆和一个弹出窗口。其思想是,只有当视图模型中的IsDirty属性为真时,才显示这两个控件;如果为真,则椭圆在同一视图模型有效时为绿色,否则为红色;如果用户将鼠标放在弹出窗口上,则弹出窗口显示消息。

    弹出窗口的内容和绑定是正确的,所以我想知道是否应该能够通过使用它自己样式的触发器(如下面的代码中所示)来控制它是否打开。

    干杯,
    贝里尔

    <Popup x:Name="dirtyPopup" AllowsTransparency="True" >
        <Popup.Style>
            <Style TargetType="Popup">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="IsOpen" Value="{Binding IsDirty}"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Popup.Style>
        <Grid content goes here />
    </Popup>
    
    1 回复  |  直到 16 年前
        1
  •  1
  •   Quartermeister    16 年前

    我想你不想在弹出窗口上绑定到Ismouseover。只有当鼠标位于弹出窗口本身上时,这才是正确的,只有当弹出窗口已经打开时,这才可能发生,因此您将永远无法在第一时间打开它。

    如果鼠标位于其他控件(如椭圆)上,则可能希望弹出窗口打开。最简单的方法是 ToolTip . 如果在椭圆上设置工具提示属性,则当鼠标位于椭圆上时,将显示工具提示弹出窗口。像这样:

    <Ellipse>
        <Ellipse.ToolTip>
            <Grid content goes here />
        </Ellipse.ToolTip>
    </Ellipse>
    
    推荐文章