4
我一直在用這個撓我的腦袋。作爲工具提示的WPF圖像 - DPI問題
在我的主窗口我有一個映像誰的工具提示應該彈出的圖像在它的實際尺寸(或不超過主窗口本身更大的高度):
<Image x:Name="ss1" Grid.Column="0" Grid.Row="0" Margin="0">
<Image.ToolTip>
<ToolTip DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}">
<Border BorderBrush="Black" BorderThickness="1" Margin="5,7,5,5">
<Image Source="{Binding Source}" MaxHeight="{Binding ElementName=MW,Path=Height}" Stretch="Uniform" ToolTipService.Placement="Top"/>
</Border>
</ToolTip>
</Image.ToolTip>
</Image>
(主窗口的X:名稱是' MW「)
在另一類別處我加載的BitmapImage這個圖像控制:
Image img = (Image)mw.FindName("ss1");
img.Source = GetBitmapImageFromDisk(path, UriKind.Absolute);
而且GetBitMapImageFromDisk方法:
public static BitmapImage GetBitmapImageFromDisk(string path, UriKind urikind)
{
if (!File.Exists(path))
return null;
try
{
BitmapImage b = new BitmapImage(new Uri(path, urikind));
return b;
}
catch (System.NotSupportedException ex)
{
BitmapImage c = new BitmapImage();
return c;
}
}
圖像工具提示在鼠標懸停時彈出,但問題是圖像的大小似乎取決於圖像本身的DPI。因此,如果由於某種原因,它的目標是DPI爲762的圖像,則在顯示時,工具提示圖像非常小。
任何人都可以提出一種方法來緩解這與我目前的代碼?在運行時加載的圖像幾乎可以是任何尺寸,DPI和寬高比。
也許有幫助的:http://stackoverflow.com/a/644625/1136211 – Clemens