图像翻转时弹出
本文关键字:翻转 图像 | 更新日期: 2023-09-27 18:35:48
这是我想要完成的:
我有一系列小图像(24x24),指示各种系统状态。当用户滚动图像(例如系统警报图像)时,我希望弹出窗口显示前 5 个警报和一个 More... 选项(如果警报超过 5 个)。显示列表时,我希望用户能够选择其中一个警报或"更多"选项并显示详细信息。
我遇到的问题是:
我无法阻止鼠标离开图像以选择项目时弹出窗口消失。
下面是我用来显示弹出窗口的用户控件中的一段 XAML。
<Image x:Name="SmallImage"
Source="{Binding ElementName=root, Path=ImageSource}"
Height="{Binding ElementName=root, Path=Height}"
Width="{Binding ElementName=root, Path=Width}"
Grid.Row="0" />
<Popup Name="ItemPopup"
AllowsTransparency="True"
PopupAnimation="Fade"
HorizontalOffset="-35"
VerticalOffset="0"
Grid.Row="1">
<Popup.Style>
<Style TargetType="{x:Type Popup}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=SmallImage, Path=IsMouseOver, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="True">
<DataTrigger.Setters>
<Setter Property="IsOpen" Value="True" />
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
</Style>
</Popup.Style>
<Border x:Name="MyBorder" BorderBrush="#72777F" Background="White" BorderThickness="1,1,1,1" CornerRadius="5,5,5,5">
<Grid>
<Label Content="This is your list of items."></Label>
</Grid>
</Border>
</Popup>
这是因为每次IsMouseOver
属性更改时,您的Trigger
都会触发,如果条件失败Trigger
它将Property
设置为默认值,即在这种情况下为 false。您将需要两个Triggers
,一个用于在IsMouseOver
为真的情况下打开弹出窗口,第二个用于在IsMouseOver
变为假并且Popup
已经打开时保持弹出窗口打开。
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=SmallImage, Path=IsMouseOver, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="True">
<DataTrigger.Setters>
<Setter Property="IsOpen" Value="True" />
</DataTrigger.Setters>
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=SmallImage, Path=IsMouseOver, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Value="False"/>
<Condition Binding="{Binding IsOpen, RelativeSource={RelativeSource Self}}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="IsOpen" Value="True" />
</MultiDataTrigger>
</Style.Triggers>