최근에 C#을 사용하여 Windows Phone 8.1 개발을 배우기 시작했습니다. 지난 주까지 C# 또는 XAML에 대한 사전 경험이 없습니다. 아래 (XAML)와 같이 C#을 사용하여 XAML의 버튼 이미지 변경
나는<Button x:Name="playButton"
VerticalAlignment="Stretch"
Click="Button_Click">
<StackPanel Orientation="Horizontal">
<Image x:Name="controlImg" Source="/Assets/Media-Play.png" />
<TextBlock Text=" Play" />
</StackPanel>
</Button>
초기 이미지는 '재생'아이콘과 놀이를 말한다 텍스트입니다 버튼에 이미지를 변경하기 위해 노력하고있어. 이것은 올바르게 작동하고 렌더링됩니다. 하지만 버튼을 '일시 중지'아이콘과 일시 중지라고 표시된 텍스트로 클릭하면 해당 이미지를 변경하고 싶습니다.
여기에 지금까지
private mediaState medState = mediaState.Stopped;
public BitmapImage iconStop = new BitmapImage(new Uri("ms-appx:///Assets/Media-Stop.png", UriKind.RelativeOrAbsolute));
public BitmapImage iconPause = new BitmapImage(new Uri("ms-appx:///Assets/Media-Pause.png", UriKind.RelativeOrAbsolute));
public BitmapImage iconPlay = new BitmapImage(new Uri("ms-appx:///Assets/Media-Play.png", UriKind.RelativeOrAbsolute));
private void Button_Click(object sender, RoutedEventArgs e)
{
switch (medState)
{
case mediaState.Playing:
medState = mediaState.Paused;
mediaE.Pause();
playButton.Content = " Play";
controlImg.Source = this.iconPlay;
break;
case mediaState.Paused:
medState = mediaState.Playing;
mediaE.Play();
playButton.Content = " Pause";
controlImg.Source = this.iconPause;
break;
case mediaState.Stopped:
medState = mediaState.Playing;
mediaE.Play();
playButton.Content = " Pause";
controlImg.Source = this.iconPause;
break;
default:
break;
}
}
public enum mediaState
{
Playing,
Paused,
Stopped
}
mediaE
:
내가 여기BitmapImage
과 다른 질문을 사용하기위한 MSDN 문서를 확인하고 은 일반적으로 말하는이
// Create source
BitmapImage myBitmapImage = new BitmapImage();
// BitmapImage.UriSource must be in a BeginInit/EndInit block
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Water Lilies.jpg");
그러나 같은 경우에도 유효한 함수로 BitmapImage.BeginInit()
을 인식하지 못하는 내 비주얼 스튜디오.
나는 또한이 질문을 검사했다 : BitmapImage missing BeginInit() and EndInit() function? 대답은 클래스가 Windows phone과 동일한 방법으로 구현되지 않는다고 말했다. 클래스의 Windows phone 설명서 (http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.media.imaging.bitmapimage%28v=vs.105%29.aspx)를 확인하는 것은 내가 원하는 것을 성취 할 수있는 명확한 방법을 보여주지 못했습니다.
참고 : 저는 Windows Phone 8.1 용으로 개발 중입니다. 제발 어떤 도움을 주시면 감사하겠습니다. 감사합니다
@taLhaKhan 나는 그것이 예외를 던지려고 노력했다. –
이 BitmapImage를 시도하십시오. bm = 새 BitmapImage (새 Uri (@ "자산/미디어 중지 .png", UriKind.RelativeOrAbsolute)); – loop
@ 루프가 그것을 시도했습니다. 그것은 인수 예외도 던졌다. 주어진 System.Uri는 Windows.Foundation.Uri로 변환 될 수 없다. –