我正在開發WPF應用程序。在那個iam中,在Listbox中加載圖像。有什麼方法可以知道分辨率低的圖像嗎?我想顯示帶有警告的低分辨率圖像。 Plz幫助我瞭解這個查詢。 在此先感謝。如何知道WPF應用程序中的圖像信息
回答
假設您要加載位圖圖像(包括BMP,JPEG,PNG等 - 任何不是矢量圖形圖的圖像),您可以使用System.Windows.Media.Imaging中的BitmapSource類來讀取源代碼圖像的PixelHeight和PixelWidth。雖然可以直接將圖像加載到BitmapSource中,但如果要加載到Image控件中,則可以通過圖像的Source屬性直接訪問BitmapSource。然後,只需確定低分辨率對您來說意味着什麼 - 小於50像素的平方,100像素,200像素等,並在PixelHeight或PixelWidth小於此像素時顯示警告。
把它放在一起,假設我們想在圖像頂部顯示一個橙色矩形,如果它小於100像素寬或小於100像素高。使用非列表框的實現,我們可以這樣做:
<Image x:Name="DemoImage" Source="demo.png"/>
<Rectangle Fill="Orange" Width="20" Height="20">
<Rectangle.Resources>
<local:LessThanConverter x:Key="LessThanConverter"/>
</Rectangle.Resources>
<Rectangle.Style>
<Style TargetType="Rectangle">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=DemoImage, Path=Source.PixelHeight,
Converter={StaticResource LessThanConverter}, ConverterParameter=100}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=DemoImage, Path=Source.PixelWidth,
Converter={StaticResource LessThanConverter}, ConverterParameter=100}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
由於WPF只觸發了檢查平等,我們需要一個轉換器來比較兩個值 - 在這種情況下,我們的實際像素高度/寬度和像素高度/寬度我們已經確定了圖像'低分辨率' - 並返回一個我們可以觸發的真/假值。在上面的代碼中,它被命名爲LessThanConverter。用於轉換器中的代碼是直接的:
/// <summary>
/// Converter to use in WPF triggers that returns true when
/// 'value' is less than 'parameter'.
/// </summary>
public class LessThanConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
return ((int)value < System.Convert.ToInt32(parameter));
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
然後,當被加載的圖像時,矩形的樣式檢查其觸發,查看是否具有圖像的高度或寬度小於100像素;如果是這樣,它會將矩形的可見性從默認(摺疊)更改爲可見,從而在圖像頂部顯示橙色矩形。當然,當圖像分辨率較低時,您可以輕鬆使用不同的元素進行顯示。
要在列表框中執行此操作,您只需更新項目模板以包含源圖像和警告圖標;然後根據與其關聯的圖像將樣式應用於警告圖標。你不能在這裏使用ElementName綁定,但其他的綁定類型應該就足夠了。或者,將下面的代碼(使用ElementName綁定)包裝到包含圖像和警告圖標的自定義控件中,以及您可以像項目模板中的普通圖像控件一樣使用該控件,不同之處在於您的自定義控件顯示警告圖標(當顯示低分辨率圖像時)。
- 1. android:知道我的應用程序的構建信息
- 2. 如何在wpf應用程序中顯示網頁的信息
- 3. 如何知道誰在WPF中連接到應用程序?
- 4. 發送信息給WPF應用程序
- 5. 如何存儲WPF應用程序的登錄信息
- 6. 如何知道任何應用程序發送短信
- 7. WPF應用程序如何知道從哪裏開始?
- 8. 關於C#中圖像的信息WPF
- 9. 如何知道pthread_barrier_t上的netbeans信息
- 10. iphone應用程序如何知道其他應用程序?
- 11. 如何在WPF應用程序中使用Interop.WIA掃描圖像
- 12. 如何設置應用程序信息
- 13. 如何在C#WPF應用程序中拖放圖像文件
- 14. 如何知道wpf應用程序是否在終端服務會話中?
- 15. 目標c:如何知道圖片的檢查員信息
- 16. 如何在UWP應用程序中創建信息性的Toast通知
- 17. 如何知道應用程序試圖訪問哪些文件?
- 18. 像應用程序詳細信息屏幕滾動視圖
- 19. Rails應用程序信息
- 20. 如何在應用程序中獲取MMS/SMS消息信息?
- 21. 如何知道Android中的應用程序的顯示大小?
- 22. 我不知道如何在我的應用程序中註銷
- 23. 如何知道iPhone中安裝的應用程序
- 24. 如何知道我的android應用程序在reciver中運行?
- 25. 如何知道我的應用程序中android
- 26. 建立在.net 3.5 wpf應用程序的日期信息
- 27. 閱讀WPF應用程序的彙編版本信息
- 28. 如何在iOS應用程序中存儲通知詳細信息?
- 29. 如何在wpf應用程序啓動時顯示圖像?
- 30. 如何將圖像保存在WPF應用程序在C#
Thanks for the Reply – ibrahimkhan 2009-05-26 13:43:18