【问题标题】:Comparing Images to associated Grids将图像与关联的网格进行比较
【发布时间】:2015-06-30 03:27:41
【问题描述】:

我正在尝试一个拖放游戏,其中用户必须将 10 个编号的图像分类到 2 个网格中,一个奇数一个偶数。

我们可以进行拖放操作,但它会跳过 if 语句的第一部分并直接转到 else。 所以图像不会排序。有什么想法我可能会出错吗?

XAML

<Grid PointerMoved="ptr_moved" >
    <Grid.Background>
        <ImageBrush Stretch="Fill" ImageSource="Assets/oddEveBck.png"/>
    </Grid.Background>
    <Image Tag="one" x:Name="one" HorizontalAlignment="Left" Height="179" Margin="-14,609,0,-20" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish1.png" RenderTransformOrigin="0.5,0.5" PointerPressed="fish1_pressed" PointerReleased="fish1_released" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Image.RenderTransform>
            <CompositeTransform Rotation="-15.903"/>
        </Image.RenderTransform>
    </Image>
    <Image Tag="two" x:Name="two" HorizontalAlignment="Left" Height="179" Margin="254,522,0,0" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish2.png" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto" PointerPressed="fish2_pressed" PointerReleased="fish2_released">
        <Image.RenderTransform>
            <CompositeTransform Rotation="5.071"/>
        </Image.RenderTransform>
    </Image>
    <Image Tag="three" x:Name="three" HorizontalAlignment="Left" Height="179" Margin="101,525,0,0" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish3.png" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto" PointerPressed="fish3_pressed" PointerReleased="fish3_released">
        <Image.RenderTransform>
            <CompositeTransform Rotation="28.652"/>
        </Image.RenderTransform>
    </Image>
    <Image Tag="four" x:Name="four" HorizontalAlignment="Left" Height="179" Margin="508,635,0,-46" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish4.png" RenderTransformOrigin="0.5,0.5" PointerPressed="fish4_pressed" PointerReleased="fish4_released" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Image.RenderTransform>
            <CompositeTransform Rotation="-15.903"/>
        </Image.RenderTransform>
    </Image>
    <Image Tag="five" x:Name="backBtn" HorizontalAlignment="Left" Height="134" Margin="10,10,0,0" VerticalAlignment="Top" Width="120" Source="ms-appx:///Assets/Back.png" Tapped="backBtn_Tapped"/>
    <Image x:Name="five" HorizontalAlignment="Left" Height="179" Margin="180,623,0,-34" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish5.png" RenderTransformOrigin="0.5,0.5" PointerPressed="fish5_pressed" PointerReleased="fish5_released" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Image.RenderTransform>
            <CompositeTransform Rotation="1.614"/>
        </Image.RenderTransform>
    </Image>
    <Image Tag="six" x:Name="six" HorizontalAlignment="Left" Height="179" Margin="456,537,0,0" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish6.png" RenderTransformOrigin="0.5,0.5" PointerPressed="fish6_pressed" PointerReleased="fish6_released" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Image.RenderTransform>
            <CompositeTransform Rotation="-15.903"/>
        </Image.RenderTransform>
    </Image>
    <Image Tag="seven" x:Name="seven" HorizontalAlignment="Left" Height="179" Margin="586,549,0,0" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish7.png" RenderTransformOrigin="0.5,0.5" PointerPressed="fish7_pressed" PointerReleased="fish7_released" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Image.RenderTransform>
            <CompositeTransform Rotation="3.14"/>
        </Image.RenderTransform>
    </Image>
    <Image Tag="eight" x:Name="eight" HorizontalAlignment="Left" Height="179" Margin="334,601,0,-12" VerticalAlignment="Top" Width="224" Source="Assets/OddEve/Fish8.png" RenderTransformOrigin="0.5,0.5" PointerPressed="fish8_pressed" PointerReleased="fish8_released" UseLayoutRounding="False" d:LayoutRounding="Auto">
        <Image.RenderTransform>
            <CompositeTransform Rotation="-15.903"/>
        </Image.RenderTransform>
    </Image>
    <Grid Tag="evenGrid" x:Name="evenGrid" HorizontalAlignment="Left" Height="199" Margin="943,497,0,0" VerticalAlignment="Top" Width="142" RenderTransformOrigin="0.492,0.503" />
    <Grid Tag="oddGrid" x:Name="oddGrid" HorizontalAlignment="Left" Height="199" Margin="1090,497,0,0" VerticalAlignment="Top" Width="150"/>

</Grid>

XAML.CS

 private void fish1_pressed(object sender, PointerRoutedEventArgs e)
    {
            holding = sender as Image;
            imageOffset = e.GetCurrentPoint(holding).Position;

    }

    private async void fish1_released(object sender, PointerRoutedEventArgs e)
    {
        if (oddGrid == one.Tag)
        {
            holding = null;
            one.Visibility = Visibility.Collapsed;
        }

        else
        {
            MessageDialog dialog = new MessageDialog("Not even try again!!");
            await dialog.ShowAsync();
            holding = null;

        }

    }

【问题讨论】:

    标签: c# windows xaml visual-studio-2013 windows-store-apps


    【解决方案1】:

    问题在于您的if 声明:

    if (oddGrid == one.Tag)
    

    在这种情况下,oddGridGrid 对象,one.Tagstring,其值为 "one"。显然,它们不相等,所以改为执行 else 块。但是从代码示例中并不清楚您实际上要测试什么。大概您还在ptr_moved 事件处理程序中做了一些工作,这里没有显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多