日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

WPF中StringToImage和BoolToImage简单用法

發布時間:2023/12/10 asp.net 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF中StringToImage和BoolToImage简单用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

  在WPF的綁定控件操作中,經常會通過bool值或者某些特定的string值做出相應動作。但UI層控件的很多屬性對應的都不是Bool值或者對應的只是固定的String值。

  這個時候有兩方法解決該問題。

  1.是在后臺cs中做出比較判斷,然后根據相應結果傳達UI層做出相應動作。

  2.是直接在UI界面寫好,然后會自行根據傳入值做相應動作。

  本文主要講第二種方法。Demo在結尾會附上。

  一.基類,判斷類代碼(Bool篇)

  

public class BoolToValueConverter<T> : IValueConverter{public T FalseValue { get; set; }public T TrueValue { get; set; }public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture){if (value == null)return FalseValue;elsereturn (bool)value ? TrueValue : FalseValue;}public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture){return value != null ? value.Equals(TrueValue) : false;}}

  新建個類繼承自IValueConverter,并將其繼承方法名寫出來(Convert和ConvertBack),這兩個方法是邏輯判斷的主要代碼。Convert是將傳入值做出判斷和返回相應結果,此處是TrueValue或FalseValue。ConverBack是將返回結果反轉換回來,本文并沒有用到這個。

?

  二.新建個實用類

public class BoolToBitmapImageConverter : BoolToValueConverter<BitmapImage> { }

  該類繼承BoolToValueConverter<T>,因為Demo轉換的是圖片所以類型是BitmapImage。

  

  三.UI布置

?

<Window.Resources><view:BoolToBitmapImageConverter x:Key="boolImgConv" ><view:BoolToBitmapImageConverter.TrueValue><BitmapImage UriSource="Resource/Status-True.png" /></view:BoolToBitmapImageConverter.TrueValue><view:BoolToBitmapImageConverter.FalseValue><BitmapImage UriSource="Resource/Status-False.png" /></view:BoolToBitmapImageConverter.FalseValue></view:BoolToBitmapImageConverter></Window.Resources><StackPanel Width="260"><Image Height="40" Source="{Binding BoToIma, Converter={StaticResource boolImgConv}}" /><Button Content="True" Height="100" Click="ButtonTrue"/><Button Content="False" Height="100" Click="ButtonFalse"/></StackPanel>

  Source中BoToIma是綁定傳入的數據,然后通過轉換器Converter轉換,轉換顯示結果在Key是boolImgConv中做圖片綁定,在Window.Resource里設置True或False的綁定圖片。

?

  四.StringToImage簡單聊聊

  StringToImage和BoolToImage差不多,只是在Convert和ConvertBack中的邏輯判斷做的相對細致些,比如:傳入值“X”拋出值"Y",傳入值“XX”拋出值"YY",傳入值“XXX”拋出值"YYY"等等,做個IF判斷或者Switch判斷即可。

  算了,貼代碼說話,語文不好是個硬傷。

public class StringToImageSourceConverter : StringToValueConverter<ImageSource> { }public class StringToValueConverter<T> : IValueConverter{public ImageSource NormalValue { get; set; }public ImageSource CrestronErrorValue { get; set; }public ImageSource EncErrorValue { get; set; }public ImageSource AllErrorValue { get; set; }public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture){string key = value == null ? null : value.ToString();if (string.IsNullOrEmpty(key) || key == "00"){return NormalValue;}else if (key == "01"){return CrestronErrorValue;}else if (key == "10"){return EncErrorValue;}else{return AllErrorValue;}}public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture){if (value == null || value.Equals(NormalValue)){return "00";}else if (value.Equals(CrestronErrorValue)){return "01";}else if (value.Equals(EncErrorValue)){return "10";}else{return "11";}}}

?先定義四種狀態,然后做if判斷。新建類繼承該類,完活,太細致的我也不懂。。。。
?  UI層:Windows.Resource里設置綁定屬性

<view:StringToImageSourceConverter x:Key="stringImgConv"><view:StringToImageSourceConverter.NormalValue><BitmapImage UriSource="Resource/Status1.png" /></view:StringToImageSourceConverter.NormalValue><view:StringToImageSourceConverter.CrestronErrorValue><BitmapImage UriSource="Resource/Status2.png" /></view:StringToImageSourceConverter.CrestronErrorValue><view:StringToImageSourceConverter.EncErrorValue><BitmapImage UriSource="Resource/Status3.png" /></view:StringToImageSourceConverter.EncErrorValue><view:StringToImageSourceConverter.AllErrorValue><BitmapImage UriSource="Resource/Status4.png" /></view:StringToImageSourceConverter.AllErrorValue></view:StringToImageSourceConverter>

  

五.Demo附上

?

六.寫的都是自己遇到的問題和見解,有錯歡迎糾正,輕噴輕拍,非常感謝

轉載于:https://www.cnblogs.com/Khan-Sadas/p/4950573.html

總結

以上是生活随笔為你收集整理的WPF中StringToImage和BoolToImage简单用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。