我想在每次点击时切换按钮的图像。我的代码如下所示:
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。“
答案 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)) };