내보내기(0) 인쇄
모두 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Windows Phone의 앱 바 아이콘 버튼 및 메뉴 항목 동적 변경 방법

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

 

이 항목에서는 런타임에 응용프로그램 모음의 아이콘 버튼과 메뉴 항목을 동적으로 변경하는 방법을 설명합니다.

런타임에 이러한 항목을 변경하려면 코드를 사용하여 응용프로그램 모음을 만들어야 합니다. 응용프로그램 모음은 데이터 바인딩 같은 컨트롤의 일부 공통 기능을 지원하지 않습니다. 따라서 XAML에 설정된 이름 속성을 사용하여 아이콘 버튼과 메뉴 항목 텍스트를 변경할 수 없습니다.

이 항목에서는 버튼이 하나 있는 응용프로그램 모음을 만듭니다. 사용자가 이 버튼을 클릭하면 재생과 일시 중지가 전환됩니다. 코드에서 버튼의 텍스트와 아이콘을 모두 변경합니다. 또한 메뉴 항목을 만들고 텍스트가 전환되도록 합니다.

응용프로그램 모음에 대한 자세한 내용은 Windows Phone의 앱 바를 참조하세요.

이 항목에는 다음 단원이 포함되어 있습니다.

 

이 절차에서는 버튼에 사용할 재생 및 일시 중지 아이콘을 추가합니다. 자세한 내용은 Windows Phone의 앱 바 아이콘 버튼을 참조하세요.

아이콘 버튼 이미지를 추가하려면

  1. Visual Studio 에서 새 Windows Phone 응용프로그램을 만듭니다.

  2. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 추가를 가리킨 다음 새 폴더를 클릭합니다. 새 폴더 이름을 이미지로 지정합니다.

  3. 솔루션 탐색기에서 Images 폴더를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기존 항목을 클릭합니다.

  4. 다음 위치로 이동하여 표준 아이콘을 찾습니다.

    C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Icons\Dark

  5. 다음 파일을 선택하고 추가를 클릭합니다. 표시된 대로 이름을 바꿉니다.

    원래 이름

    새 이름

    transport.play.png

    play.png

    transport.pause.png

    pause.png

  6. 솔루션 탐색기에서 새 파일 두 개를 모두 선택합니다.

  7. 속성 창에서 두 개의 새 파일에 다음 속성을 설정합니다.

    속성

    빌드 작업

    Content

    출력 디렉터리로 복사

    복사 안 함

이 절차에서 응용프로그램 모음을 만듭니다. 그런 다음 버튼과 메뉴 항목을 하나씩 추가합니다. 자세한 내용은 코드를 사용하여 Windows Phone용 앱 바를 만드는 방법를 참조하세요.

코드를 사용하여 응용프로그램 모음을 만들려면

  1. 편집기에서 기본 페이지의 코드 숨김 파일을 엽니다.

  2. 코드의 맨 위에서 다음과 같은 네임스페이스를 가져옵니다.

    using Microsoft.Phone.Shell;
    
  3. 클래스에 다음 이벤트 처리기를 추가합니다. 다음 절차에서 이러한 메서드에 코드를 추가합니다.

    private void button1_Click(object sender, EventArgs e)
    {
    }
    
    private void menuItem1_Click(object sender, EventArgs e)
    {
    }
    
    
    
  4. 생성자에서 InitializeComponent에 대한 호출 뒤에 다음 코드를 추가합니다. 이 코드는 새 ApplicationBar 개체를 초기화하고, 버튼 및 메뉴 항목을 만들며, 초기 텍스트 및 아이콘을 설정하고, 클릭 이벤트의 이벤트 처리기를 추가합니다.

    ApplicationBar = new ApplicationBar();
    
    ApplicationBarIconButton button1 = new ApplicationBarIconButton();
    button1.IconUri = new Uri("/Images/play.png", UriKind.Relative);
    button1.Text = "play";
    ApplicationBar.Buttons.Add(button1);
    button1.Click += new EventHandler(button1_Click);
    
    ApplicationBarMenuItem menuItem1 = new ApplicationBarMenuItem();
    menuItem1.Text = "menu item state 0";
    ApplicationBar.MenuItems.Add(menuItem1);
    menuItem1.Click += new EventHandler(menuItem1_Click);
    

다음 절차에서는 아이콘 버튼 이미지, 아이콘 버튼 텍스트 및 메뉴 항목 텍스트를 변경하는 코드를 추가합니다. ButtonsMenuItems는 모두 ApplicationBar 개체의 컬렉션입니다. 버튼과 메뉴 항목을 만든 순서를 알고 있으며 컬렉션이 작기 때문에, 컬렉션 안 해당 위치에 따라 개체에 액세스하는 것이 가장 쉽습니다.

다음 절차에서는 테스트 용도로만 클릭 이벤트에 코드를 추가합니다. 사용자 고유 앱의 경우 다른 위치에서 응용프로그램 모음을 변경할 수 있습니다.

아이콘 버튼을 동적으로 변경하려면

  1. 단추의 Click 이벤트 처리기에 다음 코드를 추가합니다.

    private void button1_Click(object sender, EventArgs e)
    {
        ApplicationBarIconButton btn = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
    
        if (btn.Text == "play")
        {
            btn.Text="pause";
            btn.IconUri = new Uri("/Images/pause.png", UriKind.Relative);
        }
        else if (btn.Text == "pause")
        {
            btn.Text="play";
            btn.IconUri = new Uri("/Images/play.png", UriKind.Relative);
        }
    }
    
  2. 응용프로그램을 저장, 빌드하고 실행합니다.

  3. 버튼을 여러 번 클릭하여 아이콘과 텍스트가 바뀌었다가 다시 원래대로 돌아오는지 확인합니다.

메뉴 항목을 동적으로 변경하려면

  1. 메뉴 항목의 Click 이벤트 처리기에 다음 코드를 추가합니다.

    private void menuItem1_Click(object sender, EventArgs e)
    {
        ApplicationBarMenuItem mi = (ApplicationBarMenuItem)ApplicationBar.MenuItems[0];
    
        if (mi.Text == "menu item state 0")
        {
            mi.Text="menu item state 1";
        }
        else if (mi.Text == "menu item state 1")
        {
            mi.Text="menu item state 0";
        }
    }
    
  2. 응용프로그램을 저장, 빌드하고 실행합니다.

  3. 메뉴 항목을 여러 번 클릭하여 텍스트가 바뀌었다가 다시 원래대로 돌아오는지 확인합니다.

표시:
© 2015 Microsoft