更改按钮中的图像背景不起作用

changing image background in button does not work

我想在每次点击时切换按钮的图像。我的代码如下所示:

private void k1_Click(object sender, RoutedEventArgs e)
{
    bk1 = !bk1;
    k1.Content = bk1.ToString();

    var uriString = bk1 ? @"Assets/image1.png" : @"Assets/image2.png";
    k1.Background = new ImageBrush {  
        ImageSource = new BitmapImage(new Uri(uriString, UriKind.Relative)) 
    };
}

当我点击按钮时出现异常

System.ArgumentException : "The given System.Uri cannot be converted into a Windows.Foundation.Uri."

当您从本地资产准备 URI 时,您应该使用 ms-appx。 使用下面的代码

var uriString = bk1 ? @"ms-appx:Assets/image1.png" : @"ms-appx:Assets/image2.png";

将图像的构建操作设置为内容,为您的 URI 使用适当的标签,删除相对 URI。

var uriString = bk1 ? @"ms-appx:/Assets/image1.png" : @"ms-appx:/Assets/image2.png";
k1.Background = new ImageBrush { ImageSource = new BitmapImage(new Uri(uriString)) };