我正在为使用xaml和c#的windows 8.1商店创建一个tic tac脚趾游戏,并试图在点击时更改X和O按钮。最初,我在xaml中为按钮设置了一个空白图像,在button_click事件中,我正在尝试更改图像源。这里是我的代码片段:在wpf c中单击更改按钮图像#
private void Button_Click(object sender, RoutedEventArgs e)
{
Button btn = sender as Button;
if (turn == 1)
{
BitmapImage bmp = new BitmapImage();
Uri u = new Uri("ms-appx:/Images/O_logo.png", UriKind.RelativeOrAbsolute);
bmp.UriSource = u;
ImageBrush i = new ImageBrush();
i.ImageSource = bmp;
btn.Background = i;
}
else
{
BitmapImage bmp = new BitmapImage();
Uri u = new Uri("ms-appx:/Images/X_logo.png", UriKind.RelativeOrAbsolute);
bmp.UriSource = u;
ImageBrush i = new ImageBrush();
i.ImageSource = bmp;
btn.Background = i;
}
btn.IsEnabled = false;
//win(btn.Content.ToString());
turn += 1;
if (turn > 2)
turn = 1;
}
我在网上读了几篇文章,其中一些建议,我把我的图像资源的累积作用,但是我没有那么作为一个选项。我有PRIResource和Embedded Resource作为选项。我对mvvm和触发器的知识非常有限,因此希望使用wpf本身而不是xaml来解决问题。
我使用VS Studio专业2013
为什么不使用带有X&O的'ToggleButton'作为'IsChecked'真/假状态?看起来像这样的额外工作。 –
如果我使用切换按钮我怎样才能确定显示哪个图像,因为一旦玩家可以选择X而另一个玩家可以选择O.我想我必须在这种情况下绑定数据吧?另外最初我需要按钮来显示一个空白的图像,因此使它成为3个状态。空白,X和O – justin3250
那么[3状态](http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.togglebutton.isthreestate(v = vs.110).aspx)事情不应该构成太大的挑战。然后,您可以根据哪个玩家注册,将他们的状态放在树上。 –