WinRT - 如何在单击 gridview 元素时将弹出窗口添加为工具提示
WinRT - How to add popups as tooltips when I click a gridview element
在 windows 商店应用程序项目中,我有一个 Gridview
显示圆圈内的用户图像,我正在尝试做一个弹出窗口,在我单击时显示该用户的信息带有图片的圆圈之一。
看起来像这样。
如何获取点击项目的位置,以了解弹出窗口出现的位置?
以及如何使用不同的信息对同一弹出窗口执行不同的实例?
或者有更好的解决方案吗?
试试这个:
<Page.Resources>
<Flyout x:Name="InfoFlyout">
<TextBlock>Hello World!</TextBlock>
</Flyout>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Ellipse Grid.Column="0" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
<Ellipse Grid.Column="1" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
<Ellipse Grid.Column="2" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
<Ellipse Grid.Column="3" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
</Grid>
并添加此事件处理程序:
private void Ellipse_PointerPressed(object sender, PointerRoutedEventArgs e)
{
InfoFlyout.ShowAt(sender as FrameworkElement);
}
在 windows 商店应用程序项目中,我有一个 Gridview
显示圆圈内的用户图像,我正在尝试做一个弹出窗口,在我单击时显示该用户的信息带有图片的圆圈之一。
看起来像这样。
如何获取点击项目的位置,以了解弹出窗口出现的位置? 以及如何使用不同的信息对同一弹出窗口执行不同的实例?
或者有更好的解决方案吗?
试试这个:
<Page.Resources>
<Flyout x:Name="InfoFlyout">
<TextBlock>Hello World!</TextBlock>
</Flyout>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Ellipse Grid.Column="0" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
<Ellipse Grid.Column="1" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
<Ellipse Grid.Column="2" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
<Ellipse Grid.Column="3" Height="100" Width="100" Fill="Blue" PointerPressed="Ellipse_PointerPressed" FlyoutBase.AttachedFlyout="{StaticResource InfoFlyout}" />
</Grid>
并添加此事件处理程序:
private void Ellipse_PointerPressed(object sender, PointerRoutedEventArgs e)
{
InfoFlyout.ShowAt(sender as FrameworkElement);
}