在 WinUI 3 应用程序中,主窗口由一个包含图像控件的网格组成,该控件占据了大部分空间。作为图像控件的一部分,有一个工具提示,其中包含有关悬停时显示的所显示图像的信息。但是,如果用户将鼠标悬停在图像的右上角,则窗口的标题栏可能会被遮挡,这是一个明显的可访问性问题。
如果工具提示相对于图像的 Y 位置小于其自身高度,我尝试将工具提示的位置更改为
Bottom
中的 OnOpened()
,但这不起作用,可能是因为工具提示不是其一部分主视觉层次结构的一部分,或者可能是因为 OnOpened
在事件链中太晚了。
问题如下图所示:
控件的当前 XAML 是:
<Image
x:Name="ImagePreview"
MaxWidth="{x:Bind ImagePreviewer.MaxImageSize.Width, Mode=OneWay}"
MaxHeight="{x:Bind ImagePreviewer.MaxImageSize.Height, Mode=OneWay}"
Source="{x:Bind ImagePreviewer.Preview, Mode=OneWay}"
Visibility="{x:Bind IsPreviewVisible(ImagePreviewer, Previewer.State), Mode=OneWay}">
<ToolTipService.ToolTip>
<ToolTip x:Name="TooltipInfo" Content="{x:Bind InfoTooltip, Mode=OneWay}" />
</ToolTipService.ToolTip>
</Image>
您可以将其分成块并更改
Placement
:
<Grid RowDefinitions="*,*">
<Image
Grid.Row="0"
Grid.RowSpan="2"
Source="Assets\test.png" />
<Grid
Grid.Row="0"
Background="Transparent">
<ToolTipService.ToolTip>
<ToolTip
Content="Happy Coding!"
Placement="Bottom" />
</ToolTipService.ToolTip>
</Grid>
<Grid
Grid.Row="1"
Background="Transparent">
<ToolTipService.ToolTip>
<ToolTip
Content="Happy Coding!"
Placement="Top" />
</ToolTipService.ToolTip>
</Grid>
</Grid>