私は最初のWindows10UWPアプリを開発しています。画像があります。これはそのXAMLコードです:
<Image x:Name="image"
HorizontalAlignment="Left"
Height="50"
Margin="280,0,0,25"
VerticalAlignment="Bottom"
Width="50"
Source="Assets/Five.png"/>
そして、このコードでimage.sourceを変更しようとしています:
private void slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
BitmapImage One = new BitmapImage(new Uri(@"Assets/One.png"));
BitmapImage Two = new BitmapImage(new Uri(@"Assets/Two.png"));
BitmapImage Three = new BitmapImage(new Uri(@"Assets/Three.png"));
BitmapImage Four = new BitmapImage(new Uri(@"Assets/Four.png"));
BitmapImage Five = new BitmapImage(new Uri(@"Assets/Five.png"));
if (slider.Value == 1)
{
image.Source = One;
}
else if (slider.Value == 2)
{
image.Source = Two;
}
else if (slider.Value == 3)
{
image.Source = Three;
}
else if (slider.Value == 4)
{
image.Source = Four;
}
else if (slider.Value == 5)
{
image.Source = Five;
}
}
しかし、コードをコンパイルすると、変数宣言を指す次のエラーが発生します。
UriFormatExceptionはユーザーコードによって処理されませんでした
WindowsランタイムAPIはタイプUriKind.RelativeのURIをサポートしていないため、通常はUriKindを推測する署名を使用しますそして、スキームと権限を含む有効な絶対URIを指定したことを確認してください。
アプリケーションパッケージ内に保存されているファイルにアクセスするには、ルート権限が推測されないコードから、次のようにms-appx:スキームを指定します。
BitmapImage One = new BitmapImage(new Uri("ms-appx:///Assets/One.png"));
詳細については、 ファイルリソース(XAML)のロード方法 および RIスキーム を参照してください。
URIオブジェクトごとに追加のUriKindパラメーターを指定して、相対的なものとして定義する必要があります。
new Uri("Assets/One.png", UriKind.Relative)