欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 99re在线精品 | 日韩精品在线播放 | 日本免费视频在线观看 | 国产一区二区三区国产精品 | 久久精品伊人网 | 91插视频| 国产福利视频在线观看 | 天天射夜夜骑 | 天堂色网站 | 亚久久 | 日韩精品免费观看 | 天堂热 | 国产精品久久av | 国产v欧美v日本v精品 | 成人午夜视频一区二区国语 | 在线国产视频 | 东京一热本色道久久爱 | 蜜桃视频在线观看www社区 | 日韩av福利 | 亚洲精品无码成人A片九色播放 | 久色乳综合思思在线视频 | 免费高清欧美一区二区视频 | 久久蜜桃亚洲一区二区 | 国产激情在线观看 | 国产精彩视频在线 | 国内精品伊人久久久影视 | 日本中文字幕网站 | 六月综合激情 | 精品久久网 | 成人国产激情福利久久精品 | 国产精品97在线 | 欧美大片在线免费观看 | av毛片| 日本精品久久 | av毛片在线免费看 | 亚洲一区二区色情苍井空 | 国产精品尤物 | 一区二区三区日韩视频在线观看 | 关键词| 亚洲成人一区二区 | 91精品最新国内在线播放 |