我已经检查过在 uwp 中模拟 fontIcon 上的鼠标悬停效果。但我面临着一个不同的“闪烁”问题。
我在 ScrollViewer 中有一个 Grid,它是 PivotItem 控件的子控件。网格一开始是空的,然后以编程方式填充。
<PivotItem>
<ScrollViewer x:Name="MyScrollBar" >
<Grid Name="MyGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
</Grid>
</ScrollViewer>
</PivotItem>
Run Code Online (Sandbox Code Playgroud)
然后每列填充 3 个 TextBlock。我的目标是当鼠标悬停在一行(而不是单个 TextBlock)上时显示带有附加详细信息的浮出控件。为了实现这一点,我为每行定义一个附加的透明矩形,其 ColumnSpan 为 3,并将其添加为每行的最后一个子元素。然后我给它一个弹出窗口,如下所示:
Rectangle rect = new Rectangle();
rect.Opacity = 0;
rect.SetValue(Grid.RowProperty, r);
rect.SetValue(Grid.ColumnSpanProperty, 3);
Flyout fl = new Flyout();
Grid flGrid = new Grid();
TextBlock flTb1 = new TextBlock();
flTb1.Text = details.Name;
flGrid.Children.Add(flTb1);
fl.Content = flGrid;
rect.SetValue(FlyoutBase.AttachedFlyoutProperty, fl);
rect.PointerEntered += …Run Code Online (Sandbox Code Playgroud)