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

时间:2015-06-18 10:22:11

标签: c# .net windows-phone-8.1 .net-4.5

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

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:“给定的System.Uri不能   转换为Windows.Foundation.Uri。“

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

将图像的构建操作设置为内容,为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)) };