Метод GetTouchPoints в Windows Phone - PullRequest
       31

Метод GetTouchPoints в Windows Phone

0 голосов
/ 27 февраля 2012

Код XAML:

    <Grid x:Name="LayoutRoot" Height="800">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <StackPanel x:Name="TitlePanel" Orientation="Horizontal" Grid.Row="0" Margin="12,17,0,10">
            <TextBlock x:Name="ApplicationTitle" Text="Test" Margin="3,0" FontSize="21" Style="{StaticResource PhoneTextNormalStyle}" Foreground="Black"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,72">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="auto"/>
                <RowDefinition Height="125"/>
            </Grid.RowDefinitions>
            <Border BorderBrush="Gray" BorderThickness="1">
                <Grid Height="auto" Width="auto">
                    <Image x:Name="SourceImg" Stretch="Uniform" VerticalAlignment="Top" Margin="2"/>

                </Grid>
            </Border>
            <StackPanel Grid.Row="1">
                <TextBlock x:Name="CurrentRes" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="0,6,0,0" Text="test" Foreground="Black"/>

            </StackPanel>


        </Grid>
    </Grid>
    <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar x:Name="mainpageAppBar" IsVisible="True" IsMenuEnabled="True" >
            <shell:ApplicationBarIconButton IconUri="/icons/appbar.feature.camera.rest.png" Text="Select" Click="Selected_Click"/>
            <shell:ApplicationBarIconButton IconUri="/icons/edit.png" Text="OK" Click="CropBtn_Click" />

        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>
</phone:PhoneApplicationPage>

и код-это:

private void CropBtn_Click(object sender, EventArgs e)
        {
            Touch.FrameReported += OnTouchFrameReported;          
        }

        void OnTouchFrameReported(object sender, TouchFrameEventArgs args)        
        {
            try
            {
                this.SetCrop(args.GetTouchPoints(this.SourceImg));
            }
            catch (ArgumentException)
            {
            }   
        }
       private void SetCrop(TouchPointCollection points){ // do something}

Я хочу, чтобы область отклика на событие касания была просто элементом управления изображением, но когда я касаюсь другой области, такой как ApplicationBar, текст в StackPanel, срабатывает событие касания. Что-то не так с моим кодом? спасибо.

1 Ответ

0 голосов
/ 27 февраля 2012

В вашем коде нет ничего плохого.Именно так Touch.FrameReported предназначен для работы.Он работает на уровне приложения, а не на уровне элемента управления.
Если вы хотите захватить сенсорные события на фактическом элементе управления, который вас интересует. Возможно, вы захотите LeftMouseButtonDown или ManipulationStarted или подобное, в зависимости от вашего фактическоготребования.

...