欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

WP記錄DependencyProperty學習(1)

系統(tǒng) 1745 0

很早之前就看到DependencyProperty,但是每次看到都不想去深入,一眼看過去好難的樣子,今天靜下來學習一下,怕自己過幾天又忘了,來記錄一下自己學習的東西。

首先我們來看看這個東西,

      
        public
      
      
        static
      
      
        readonly
      
       DependencyProperty ItemContainerStyleProperty =
      
        

            DependencyProperty.Register(
      
      
        "
      
      
        ItemContainerStyle
      
      
        "
      
      , 
      
        typeof
      
      (string), 
      
        typeof
      
      (MyControl), 
      
        new
      
       PropertyMetadata(
      
        null
      
      , OnItemContainerStylePropertyChanged));
    

第一眼被嚇懵了,都干嘛的,好厲害的樣子,下面慢慢來說:上面就是定義了一個依賴屬性,干嘛用的,看名字就是用來設置屬性的,來看看參數(shù)ItemContainerStyle這個相當于標示符,在你寫xaml設置的時候,系統(tǒng)會去找到你設置的這個名字進行操作,typeof(string)設置類型,typeof(MyControl)這個告訴系統(tǒng)你這個注冊的屬性是屬于哪個類的,new PropertyMetadata(null, OnItemContainerStylePropertyChanged)屬性值改變時觸發(fā)的事件和屬性的初始值

      
        public
      
      
        string
      
      
         ContentInfo

        {

            
      
      
        get
      
       { 
      
        return
      
       (
      
        string
      
      
        )GetValue(ItemContainerStyleProperty); }

            
      
      
        set
      
      
         { SetValue(ItemContainerStyleProperty, value); }

        }
      
    

上面這個應該沒問題了,就是設置或者獲取屬性了,ContentInfo就是你調(diào)用自己寫的控件時可以看到的屬性了

      [TemplatePart(Name = InnerSelectorName, Type = 
      
        typeof
      
      
        (LongListSelector))]

[StyleTypedProperty(Property 
      
      = 
      
        "MyWidth
      
      
        "
      
      , StyleTargetType = 
      
        typeof
      
      
        (MyControl))]

[TemplateVisualState(Name 
      
      =”Selected“, GroupName = "SelectionStates")]
    

剛看到上面這幾個大括號我又懵了,慢慢來吧:

TemplatePart的作用是*.cs中對于*.xaml中定義的控件進行獲取,并進行操作,不好理解,其實就是在資源字典ResourceDictionary中(也就是一個.xaml)定義中可以使用.cs的屬性一些東西,.cs可以使用到.xaml里面的動畫一些東西

StyleTypedProperty:?FontSize="{TemplateBinding FontSize}“這個大家應該在自定義控件時在.xmal經(jīng)常看到吧,改一下FontSize="{TemplateBinding?MyWidth}“,沒錯StyleTypedProperty就是關聯(lián)cs里面的MyWidth屬性

TemplateVisualState:這個就是我們經(jīng)常看到的過度狀態(tài)了,看看這個代碼,是不是明白了

       <VisualStateGroup x:Name=
      
        "
      
      
        SelectionStates
      
      
        "
      
      >

            <VisualState x:Name=
      
        "
      
      
        Selected
      
      
        "
      
      />

        </VisualStateGroup>
    

說到底上面的這幾個都是*.cs中對于*.xaml中定義的控件進行獲取,并進行操作,xaml里面可以用cs里面設置的屬性,cs里面可以調(diào)用.xmal里面寫的個種動畫效果

?

然后來說說EventHandler事件,來代碼

      
        public
      
      
        event
      
      
         EventHandler ManipulationStateChanged;


      
      
        public
      
      
        event
      
      
         PropertyChangedEventHandler PropertyChanged;




      
      
        public
      
      
        override
      
      
        void
      
      
         OnApplyTemplate()

        {

            
      
      
        base
      
      
        .OnApplyTemplate();



            _myControl.Clear();

            
      
      
        if
      
       (_myControl!= 
      
        null
      
      
        )

            {

                _myControl.ManipulationStateChanged 
      
      -=
      
         OnInnerSelectorManipulationStateChanged;

                _innerSelector.PropertyChanged 
      
      -=
      
         OnInnerSelectorPropertyChanged;

            }

            _myControl
      
      = 
      
        this
      
      .GetTemplateChild(InnerSelectorName) 
      
        as
      
      
         LongListSelector;

            
      
      
        if
      
       (_myControl!= 
      
        null
      
      
        )

            {

                _myControl.ManipulationStateChanged 
      
      +=
      
         OnInnerSelectorManipulationStateChanged;

                _myControl.PropertyChanged 
      
      +=
      
         OnInnerSelectorPropertyChanged;

            }

        }
      
    

這個比較簡單了,就是事件的訂閱和取消了

?

上面這些都是繼承Control寫的,如果要實現(xiàn)listbox這種需要item這種單項內(nèi)容的,還要加入繼承ContentControl的item相應的屬性的方法,要是覺的直接繼承Control很多屬性和事件都被加進來太多的話還可以自己寫個DependencyProperty 和DependencyObject,詳細可以參考一下這篇DependencyObject,更深入的以后學習了在發(fā)

?

?

    
      ?
    
  

?

WP記錄DependencyProperty學習(1)


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 中国一级特黄真人毛片 | 日本阿v视频高清在线 | 亚色中文 | 91免费精品国偷自产在线在线 | 欧美激情人成日本在线视频 | 青草娱乐 | 久色伊人| 午夜看片在线观看 | 人人爱人人做 | 91精品一区 | 瑟瑟视频在线 | 中文字幕在线精品 | 亚洲婷婷国产精品电影人久久 | 夜夜操天天射 | 日韩精品一区二区三区中文3d | 亚洲综合亚洲 | 日麻批免费视频 | 亚洲性色视频 | 日韩欧美在线视频播放 | 日韩中文网 | 艹逼视频免费 | 成人网av| www噜噜偷拍在线视频 | 亚洲黄色一级大片 | 国产精品一区视频 | 欧美在线一二三区 | 污视频网页 | 国产精品亚洲va在线观看 | 国产成人高清 | 久久两性视频 | 午夜网页 | 日韩aⅴ一区二区三区 | 亚洲精品久久久久久中文字幕小说 | 日本wwwwwwwww | 开心网五月色婷婷综合图片 | 国产视频高清在线观看 | 九九九九九热 | 六月丁香综合 | 中国在线播放精品区 | 欧美视频在线一区二区三区 | 91九色论坛|