我有一个DataTemplate
用于 a 中项目的 a ListBox
(一个网格,第一列显示一个图标,具体取决于文件扩展名,第二列包含文件名):
<DataTemplate x:Key="ListItemTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="16"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Image Source="{Binding Icon}" Grid.Column="0" Grid.Row="0" Width="16" Height="16">
<Image.ToolTip>
<ToolTip Width="{Binding Path=ActualWidth, ElementName=ToolTipImage, Converter={StaticResource toolTipImageConverter}}" Height="{Binding Path=ActualHeight, ElementName=ToolTipImage, Converter={StaticResource toolTipImageConverter}}">
<Image Source="{Binding FileNameForThumbnailDisplay}" Name="ToolTipImage">
<Image.RenderTransform >
<TransformGroup>
<ScaleTransform ScaleX="0.5" ScaleY="0.5"></ScaleTransform>
</TransformGroup>
</Image.RenderTransform>
</Image>
</ToolTip>
</Image.ToolTip>
</Image>
<Label Content="{Binding FileNameWithExtension, Mode=OneWay}" Grid.Column="1" Grid.Row="0" BorderBrush="Transparent" Height="Auto"></Label>
</Grid>
将鼠标悬停在第一列中的图标上时,我想显示一个ToolTip
包含按比例缩小的图标。Image
这是可行的,但我想实现的是ToolTip
根据缩小图像的尺寸减少图像的显示,例如:
列表框中的图像 abc:
+--ToolTip-------+
|+-Scaled-Image-+|
|| ||
|| ||
|+--------------+|
+----------------+
列表框中的图像 xyz:
+--ToolTip-----------------+
|+-Scaled-Image-----------+|
|| ||
|| ||
|+------------------------+|
+--------------------------+
我写了一个Converter
返回ActualWidth
(渲染Image
元素的)来设置尺寸,但从未输入转换器。
我需要我可以提供用于 的代码Converter
,但是,我不认为它是相关的,因为它没有被输入(调试时的断点永远不会命中)。
如何实现ToolTip
控件的尺寸动态调整到内部的图像?这可能吗?