欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
閑話(huà)WPF之五(XAML中的類(lèi)型轉換)
在前面關(guān)于XAMLPost當中,簡(jiǎn)單說(shuō)明了XAML如果引入自定義名稱(chēng)空間。還提到過(guò)XAML基本上也是一種對象初始化語(yǔ)言。XAML編譯器根據XAML創(chuàng )建對象然后設置對象的值。比如:

<Button Width=100/>

很明顯,我們設置Button的寬度屬性值為100。但是,這個(gè)“100”的字符串為什么可以表示寬度數值呢?在XAML中的所有屬性值都是用文本字符串來(lái)描述,而它們的目標值可以是double等等。WPF如何將這些字符串轉換為目標類(lèi)型?答案是類(lèi)型轉換器(TypeConverter)。WPF之所以知道使用Double類(lèi)型是因為在FrameworkElement類(lèi)中的WidthProperty字段被標記了一個(gè)TypeConverterAttribute,這樣就可以知道在類(lèi)型轉換時(shí)使用何種類(lèi)型轉換器。TypeConverter是一種轉換類(lèi)型的標準方法。.NET運行時(shí)已經(jīng)為標準的內建類(lèi)型提供了相應的TypeConverter。所以我們可以用字符串值指定元素的屬性。

然而并不是所有的屬性都標記了一個(gè)TypeConverterAttribute。這種情況下,WPF將根據屬性值的目標類(lèi)型,比如Brush,來(lái)判斷使用的類(lèi)型轉換器。雖然屬性本身沒(méi)有指定TypeConverterAttribute,但是目標類(lèi)型Brush自己標記了一個(gè)TypeConverterAttribute來(lái)指定它的類(lèi)型轉換器:BrushConverter。所以在轉換這種屬性時(shí)將自動(dòng)使用目標值類(lèi)型的BrushConverter將文本字符串類(lèi)型的屬性值轉換為Brush類(lèi)型。

類(lèi)型轉換器對開(kāi)發(fā)人員有什么作用呢?通過(guò)它我們可以實(shí)現自定義的類(lèi)型轉換。下面一個(gè)例子演示了如何從Color類(lèi)型轉換為SolidColorBrush。

[ValueConversion(typeof(Color), typeof(SolidColorBrush))]
public class ColorBrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        Color color = (Color)value;
        return new SolidColorBrush(color);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return null;
    }
}

然后我們可以在資源中定義一個(gè)ColorBrushConverter 實(shí)例(src是一個(gè)自定義命名空間,引入了ColorBrushConverter 類(lèi)所在的Assembly)。

<Application.Resources>
  <src:ColorBrushConverter x:Key="ColorToBrush"/>
</Application.Resources>

最后使用這個(gè)自定義的類(lèi)型轉換器:

<DataTemplate DataType="{x:Type Color}">
  <Rectangle Height="25" Width="25" Fill="{Binding Converter={StaticResource ColorToBrush}}"/>
</DataTemplate>

其實(shí)WPF所使用的這種類(lèi)型轉換從.Net Framework1.0已經(jīng)開(kāi)始并廣泛應用。有興趣的朋友可以參考MSDN的介紹:通用類(lèi)型轉換(Generalized Type Conversion

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
WinForm控件開(kāi)發(fā)總結(四)
資源字典silverlight
為什么WPF的content屬性窗口不能輸入中文?
wpf控件
WPF中的資源簡(jiǎn)介、DynamicResource與StaticResource的區別(轉)
WPF的動(dòng)畫(huà)開(kāi)發(fā)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久