UWP WinUI2 Xaml:如何在禁用GridViewItem上显示工具提示

wydwbb8l  于 2023-05-11  发布在  其他
关注(0)|答案(1)|浏览(141)

我有以下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禁用了一些项。我想在那些禁用的项目上设置工具提示。我该怎么做?
我试过的事-
1.只是在处理程序ContainerContentChanging中设置工具提示。但似乎工具提示不显示在UWP应用程序中禁用的项目。
1.正在尝试处理GridVewItemPointerEntered事件。但是一旦网格项被禁用,就不会捕获指针事件。
ToolTipService.ShowOnDisabled似乎不可用。它在WPF中可用。那么我们如何在UWP中显示禁用的GridViewItem上的工具提示呢?

pepwfjgg

pepwfjgg1#

如何在UWP中显示禁用GridViewItem上的工具提示?
你不能用正常的方式。根据文档,当您禁用GridViewItem时,这意味着用户无法与GridViewItem进行交互,例如聚焦、按住或将指针悬停在其上。这些操作是触发工具提示的正常方式。
但您可以尝试通过ToolTip.IsOpen属性来执行此操作。如果要使用这种方式,则需要手动控制工具提示打开和关闭的时间。
我试着在一个被禁用的按钮中测试,你可以手动显示禁用按钮的工具提示。
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;
    }

更多信息:属性和工具提示类。

相关问题