2012-08-02 42 views
0

我有一個DataTemplate我用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控件的尺寸可以動態調整到圖像內?這可能嗎?

+0

在輸出窗口中是否有任何綁定異常? – dvvrd 2012-08-02 10:40:42

+0

不,也檢查了他們,但沒有。 – Gorgsenegger 2012-08-02 12:23:51

回答

1

只需將RenderTranform更改爲LayoutTransform並且不綁定WidthHeight。工具提示窗口將自動適合尺寸。

<Image.ToolTip> 
    <ToolTip> 
     <Image Source="{Binding FileNameForThumbnailDisplay}" Margin="4"> 
      <Image.LayoutTransform> 
       <ScaleTransform ScaleX="0.5" ScaleY="0.5"/> 
      </Image.LayoutTransform> 
     </Image> 
    </ToolTip> 
</Image.ToolTip> 
+0

謝謝,作品款待:-) – Gorgsenegger 2012-08-02 12:24:46