通过多数据触发器显示图像控制

本文关键字:显示图 图像 控制 显示 触发器 多数据 | 更新日期: 2023-09-27 18:21:17

我试图在较大的边界控件上显示一个小图像。当鼠标在该边界上时,必须显示图像,第二个条件是dpmenu折叠。但是,当鼠标在图像上(即在边界上)时,不会触发ismouseover。图像闪烁的结果是:(

我希望当鼠标越过边界和图像时显示图像。

<Grid>
<Grid.Resources>
    <Style TargetType="Image" x:Key="ImageConditionnalvisibility">
        <Setter Property="Visibility" Value="Collapsed" />
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                   <Condition Binding="{Binding ElementName=BrowserBorder, Path=IsMouseOver, Mode=OneWay}" Value="True" />
                    <Condition Binding="{Binding ElementName=dpMenuTop,Path=Visibility}" Value="Collapsed" />
                </MultiDataTrigger.Conditions>
                <Setter Property="Visibility" Value="Visible" />
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</Grid.Resources>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
...
<Border Grid.Row="1" Name="BrowserBorder" Width="500" Height="500" />
<Image Grid.Row="1" Width=16" Height="16" Style="{StaticResource   ImageConditionnalvisibility}" ... />

通过多数据触发器显示图像控制

您可以创建另一个MultiDataTrigger,其中Border条件被Image替换。