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

あなたのアイデアはバインディングを使用して良いです。Threading Sleep の代わりに Storyboard を使用することをお勧めしますが、それはここでは問題ではありません。

ImgCardプロパティが実際にPropertyChanged Eventを発生させることを確認する必要があります。次に、Image を次のように更新してコードをセットアップし、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 に答える