Windows Phone 7 ManipulationStarted 事件

來源:互聯網
上載者:User

System.WindowsUIElement.ManipulationStarted 事件

當輸入裝置對 UIElement 對象開始操作時發生。

ManipulationStarted 事件在 ManipulationStarting 事件之後發生。 使用 ManipulationStartedEventArgs,您可以執行以下操作。

使用 ManipulationContainer 屬性擷取操作位置所相對的元素。

使用 ManipulationOrigin 屬性擷取操作的原點。

通過調用 Complete 方法來取消該操作。

小例子:點擊介面,觸發事件  隨機產生hello world

<!--LayoutRoot contains the root grid where all other page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="UIElement對象操作開始觸發事件" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="main page" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBlock Name="txtblk"
                       Text=""
                       HorizontalAlignment="Center"
                       VerticalAlignment="Center" />
        </Grid>
    </Grid>

事件處理

//在 ManipulationStarted 事件發生時調用,當輸入裝置對 UIElement 對象開始操作時發生。
        protected override void OnManipulationStarted(ManipulationStartedEventArgs args)
        {
            TextBlock newTextBlock = new TextBlock();
            newTextBlock.Text = "Hello, world!";
            newTextBlock.HorizontalAlignment = HorizontalAlignment.Left;//父元素水平最左邊
            newTextBlock.VerticalAlignment = VerticalAlignment.Top;//父元素垂直最左邊
            newTextBlock.Margin = new Thickness(
                (ContentPanel.ActualWidth - txtblk.ActualWidth) * rand.NextDouble(),
                (ContentPanel.ActualHeight - txtblk.ActualHeight) * rand.NextDouble(),
                0, 0);
            //Thickness 結構四個 Double 值分別描述矩形的四個邊(Left、Top、Right 和 Bottom)。
            ContentPanel.Children.Add(newTextBlock);

            args.Complete();//完成操作
            args.Handled = true;//擷取或設定將路由事件標記為已處理的值。設定為 true,則可以防止事件路由路徑上的大多數處理常式再次處理同一事件。
            base.OnManipulationStarted(args);//務必調用基本類的 OnManipulationStarted 方法,從而基本類接收該事件
        }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.