我有以下Xaml
<DataTemplate x:Key="ImageTextTemplate" x:DataType="local1:CustomDataObject">
<Grid AutomationProperties.Name="{x:Bind Title}" Width="280">
<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>
</Grid>
</DataTemplate>
<GridView
x:Name="ContentGridView"
ContainerContentChanging="GridViewContainerContentChanging"
IsItemClickEnabled="{x:Bind ItemClickCheckBox.IsChecked.Value, Mode=OneWay}"
ItemClick="ContentGridView_ItemClick"
ItemTemplate="{StaticResource ImageTemplate}"
SelectionChanged="ContentGridView_SelectionChanged"
FlowDirection="LeftToRight"/>
我使用处理程序禁用了一些项目
ContainerContentChanging
。我想在那些禁用的项目上设置工具提示。我该怎么做?
我尝试过的东西-
ContainerContentChanging
。但似乎工具提示未显示在 UWP 应用程序中的禁用项目上。PointerEntered
的GridVewItem
事件。但是一旦禁用网格项,就不会捕获任何指针事件。好像
ToolTipService.ShowOnDisabled
不可用。它在 WPF 中可用。那么我们如何在 UWP 中显示禁用的 GridViewItem 上的工具提示?
我们如何在 UWP 中显示禁用的 GridViewItem 的工具提示?
你不能以正常的方式做到这一点。根据文档,当您禁用 GridViewItem 时,这意味着用户无法与 GridViewItem 进行交互,例如聚焦、按住或将指针悬停在上方。这些操作是触发工具提示的正常方式。
但是您可以尝试通过 ToolTip.IsOpen 属性 来做到这一点。如果要使用这种方式,需要手动控制tooltip打开和关闭的时间
我尝试在禁用的按钮中进行测试,您可以手动显示禁用按钮的工具提示。
Xaml:
<StackPanel>
<Button x:Name="TargetButton" Content="Submit" IsEnabled="False">
<ToolTipService.ToolTip>
<ToolTip>
<TextBlock Text="This is the tool tip"/>
</ToolTip>
</ToolTipService.ToolTip>
</Button>
<Button Content="Click" Click="Button_Click"/>
</StackPanel>
代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
ToolTip tooltip = ToolTipService.GetToolTip(TargetButton) as ToolTip;
tooltip.IsOpen = !tooltip.IsOpen;
}
更多信息在这里:Control.IsEnabled Property 和ToolTip Class.