windows 8 metro 風格開發(9)-Interactive(Behavior和EventTrigger)

來源:互聯網
上載者:User

開發過windows phone或者Silverlight的人肯定知道有一個Interactive的dll,可以為元素添加Behavior和EventTrigger,但是在windows 8中官方沒有提供相應的類庫,但是不等於就沒辦法了,其實我們可以自己開發一個Interactive類庫的。這個類庫已經包含在我的開源類庫裡面了。下面我主要介紹下,如何利用EventTrigger來實現為模版中的元素繫結事件。

大家知道,在模板中是無法直接給控制項添加事件的,只能通過代碼的方式在擷取控制項後用代碼的方式添加。但是這種方式是非常麻煩的,麻煩的地方在於你要遍曆樹,在樹中擷取該控制項。而我們總希望能在模版中使用XAML代碼來實現事件的註冊,這樣豈不是很方便。那麼EventTrigger就是專門幹這事的,只要給EventTrigger指定事件的名稱,再指定事件觸發時的回調(ICommand)就可以實現這樣的功能。實現代碼如下:

        <ControlTemplate x:Key="ContentControlTemplate"                         TargetType="ContentControl">            <Grid>                <Button Content="Click Me">                    <i:Interaction.Triggers>                        <i:EventTrigger  EventName="Click"                                         Command="{Binding ClickCommand,Source={StaticResource MainPageViewModel}}" />                    </i:Interaction.Triggers>                </Button>            </Grid>        </ControlTemplate>

EventName就是指定事件的名稱,我這裡指定了Click,你可以把它替換成任何你想要的事件名稱。

這裡的Interactive的使用方式跟windows phone 和Silverlight中的使用方式沒有任何的區別。

為某個控制項添加行為方式可以使用Behavior來實現,使用方式不懂的可以Google。

源碼下載,包含了類庫源碼

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.