繁体   English   中英

单击按钮后如何更改图像源?

[英]How to change an image source after clicking a button?

我正在使用Image作为按钮。 因此,默认情况下,我需要图像源为/image1.png ,当我单击图像时,它将创建一个if函数并将其图像源更改为/image2.png 我正确地更改了图像,问题是我必须单击两次图像才能在第一次单击时进行更改。

这就是我正在使用的:

public MainWindow()
    {
        InitializeComponent();
        IsPlaying = false;
        //PlayBtn.Source = (ImageSource)new ImageSourceConverter().ConvertFrom(@"C:\Users\myusername\Documents\Visual Studio 2013\Projects\Project1\Project1WPF\image1.png");
    }

private void PlayBtn_MouseDown(object sender, MouseButtonEventArgs e)
    {
        if(IsPlaying == false)
        {

            PlayBtn.Source = (ImageSource)new ImageSourceConverter().ConvertFrom(@"C:\Users\myusername\Documents\Visual Studio 2013\Projects\Project1\Project1WPF\image1.png");
            IsPlaying = true;
        }else if(IsPlaying == true)
        {

            PlayBtn.Source = (ImageSource)new ImageSourceConverter().ConvertFrom(@"C:\Users\myusername\Documents\Visual Studio 2013\Projects\Project1\Project1WPF\image2.png");
            IsPlaying = false;
        }       

要解决您的问题,只需正确设置初始状态即可。 就目前而言,您拥有以下功能:

  1. 图像以“ image1”开头。
  2. 构造函数将isPlaying设置为false
  3. 您单击按钮
  4. 该处理程序运行,因为isPlayingfalse ,所以图像设置为“ image1”(您的第一个块)
  5. isPlaying设置为true
  6. 您再次单击该按钮
  7. 该处理程序再次运行,因为isPlayingtrue所以图像设置为“ image2”。

因此,当当前值为false时翻转设置的图像,或者将初始值设置为true即可获得您描述的行为。

顺便说一句,您可能根本不应该在后台代码中执行此操作。 Source属性应该绑定到您的View模型(通过转换器),并且按钮的Command更改该源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM