簡體   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