0

我已经创建了一个扑克应用程序。我有 6 个玩家,每个玩家 2 张牌。我想知道如何说明这笔交易。我在交易时用卡换了图片,然后一步一步。但是卡片图片没有改变。如果我在syncrhon卡片图片中这样做会在迭代后发生变化。如果我使用该asynchron模式,卡片图片不会改变。
谢谢你的帮助。

有代码:

for (int j = 0; j < 2; j++)
            {
                for (int i = 0; i < opposers.Count; i++)
                {
                //    View.View.Dispatcher.BeginInvoke(() =>
                //    {
                        if (j == 0)
                            GetPlayer(i).Card1 = new Card(deck.Pop());
                        else GetPlayer(i).Card2 = new Card(deck.Pop());
                    //Thread.Sleep(500);
                    //});
                }
            }


      <Image Width="50" Height="80" Source="{Binding Card2.ImgCard}" RenderTransformOrigin="0.5,0.5" Canvas.Left="108.358" Canvas.Top="-8.349">
                    <Image.RenderTransform>
                        <CompositeTransform Rotation="16.39" SkewY="1.788" ScaleY="0.995" ScaleX="1.005" />
                    </Image.RenderTransform>
                </Image>
4

1 回答 1

0

使用绑定你的想法很好。我建议使用 Storyboard 而不是 Threading Sleep 但这不是这里的问题。

您需要确保您的ImgCard属性确实引发了PropertyChanged Event。然后,您需要通过更新 Image as 来设置代码,new ImageSource并将新的 imagesource 设置为事件将引发的属性。

`

Public Shared ReadOnly IsSpinningProperty As DependencyProperty =
    DependencyProperty.Register("IsSpinning",
                                GetType(Boolean),
                                GetType(MyCode))

Public Property IsSpinning() As Boolean
    Get
        Return CBool(GetValue(IsSpinningProperty))
    End Get
    Set(ByVal value As Boolean)
        SetValue(IsSpinningProperty, value)
    End Set
End Property

` 现在,您可以通过代码隐藏更改 IsSpinning 的值,例如

IsSpinning = NOT IsSpinning 'simple swtich the value

如果 IsSpinning 现在将切换,它将使用 SetValue 方法,并且此方法将为绑定到此 IsSpinnning 属性的所有项目引发事件。

于 2012-04-22T23:44:37.167 回答