图像绑定,一步一步改变图像

时间:2012-04-22 23:36:04

标签: c# wpf silverlight windows-phone-7

我创建了一个扑克应用程序。我有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>

1 个答案:

答案 0 :(得分:0)

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

您需要确保ImgCard属性确实提升了PropertyChanged Event。 然后,您需要通过将图像更新为new 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属性的项目引发事件。