我有下面的xaml代码
<DataTemplate x:Key="ImageTextTemplate" x:DataType="local1:CustomDataObject">
<Grid AutomationProperties.Name="{x:Bind Title}" Width="280"
PointerEntered="Grid_PointerEntered"
PointerExited="Grid_PointerExited">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Source="{x:Bind ImageLocation}" Height="100" Stretch="Fill" VerticalAlignment="Top"/>
<StackPanel Grid.Column="1" Margin="8,0,0,8">
<TextBlock Text="{x:Bind Title}" Style="{ThemeResource SubtitleTextBlockStyle}" Margin="0,0,0,8"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind Views}" Style="{ThemeResource CaptionTextBlockStyle}"/>
<TextBlock Text=" Views " Style="{ThemeResource CaptionTextBlockStyle}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind Likes}" Style="{ThemeResource CaptionTextBlockStyle}" />
<TextBlock Text=" Likes" Style="{ThemeResource CaptionTextBlockStyle}"/>
</StackPanel>
</StackPanel>
<ToolTipService.ToolTip>
<ToolTip x:Name="MyToolTip" Content="This is my tooltip" />
</ToolTipService.ToolTip>
</Grid>
</DataTemplate>
我想访问代码隐藏中的工具提示元素。但是当我跟随时,它给了我错误。
错误:名称“MyToolTip”在当前上下文中不存在
private void Grid_PointerExited(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
var gridViewItem = sender as GridViewItem;
if (!gridViewItem.IsEnabled)
{
ToolTipService.SetToolTip(gridViewItem, null);
MyToolTip.IsOpen = true;
}
}
我正在尝试显示禁用的GridViewItem
上的工具提示。代码来自github上的WinUI 2 Gallery示例。
1条答案
按热度按时间r1zk6ea11#
不能将附加到
Grid
的事件处理程序的sender
参数强制转换为Grid
以外的任何对象。一旦你有了对
Grid
的引用,你就可以使用附加的属性访问它的ToolTip
: