2014-09-16 2 views
2

Windows Phone 앱에서 타일에 하나 이상의 체크 박스를 표시하려고합니다. 이 작업은 이미 TextBlocks에서 작동하지만 CheckBox를 사용하면 CheckBox 자체의 텍스트가 아닌 CheckBox의 텍스트 만 표시됩니다. 나는 위의 방법에 의해 생성 된 배경 이미지 타일을 만드는 경우타일 용 이미지로 체크 박스 렌더링

public void CreateTile() 
    { 
     StackPanel panel = new StackPanel(); 
     panel.VerticalAlignment = VerticalAlignment.Top; 
     panel.Margin = new Thickness(7.0, 7.0, 7.0, 0); 
     panel.Width = 336; 
     panel.Height = 336; 
     panel.Orientation = Orientation.Vertical; 

     // Create and add a CheckBox for each task 
     foreach (var task in _tasks) 
     { 
      TextBlock textBlock = new TextBlock(); 
      textBlock.TextWrapping = TextWrapping.Wrap; 
      textBlock.Style = App.Current.Resources["PhoneTextLargeStyle"] as Style; 
      textBlock.Foreground = new SolidColorBrush(Colors.White); 
      textBlock.Text = task.Text; 

      CheckBox checkBox = new CheckBox(); 
      checkBox.IsChecked = task.IsDone; 
      checkBox.Content = textBlock; 

      panel.Children.Add(checkBox); 
     } 

     Grid layoutRoot = new Grid(); 
     layoutRoot.Background = new SolidColorBrush(Colors.Blue); 
     layoutRoot.Width = 336; 
     layoutRoot.Height = 336; 
     layoutRoot.Children.Add(panel); 
     layoutRoot.Measure(new Size(336, 336)); 
     layoutRoot.Arrange(new Rect(0, 0, 336, 336)); 
     layoutRoot.UpdateLayout(); 

     // Render grid into bitmap 
     WriteableBitmap bitmap = new WriteableBitmap(336, 336); 
     bitmap.Render(layoutRoot, null); 
     bitmap.Invalidate(); 

     // Save background image for tile to isolated storage 
     Uri backgroundImage = TileHelper.SaveTileImage(bitmap); 
    } 

이 타일은 다음과 같이 표시됩니다 :

enter image description here

내 코드의 샘플입니다 보시다시피 텍스트가 표시되지만 텍스트 앞에 체크 표시가 없습니다.

답변

1

개인적으로 Segoe UI SymbolFont Family으로 사용하고 싶습니다. 이것은 나에게 TextSymbols을 함께 사용할 수있는 유연성을 제공하지만 코드/이미지를 너무 많이 사용하지는 않습니다. SUS에는 Metroish라는 대단한 현대 아이콘이 있습니다.

Charmap (Win + R 및 입력 charmap)을 열고 글꼴 선택 -> Segoe UI 기호를 엽니 다. 이제 원하는 문자를 선택하여 Visual Studio Editor에 붙여 넣을 수 있습니다. 예, 작동합니다! 다음 Some CheckBoxes

되는 해당 자 : 여기

Runtime이되는 사항들에 기호가 편집기에서 제대로 자체가 표시되지 않을 수 있지만, 그것은 것입니다

  1. ☑는

여기 보이지 않는 것에 대해 걱정하지 마십시오. 위의 단계를 따라야합니다.

+0

이것은 정말 좋은 해결 방법입니다! 여전히 체크 박스 컨트롤이 올바르게 렌더링되지 않는 이유를 알고 싶습니다. –

+1

'HubTile'처럼 바뀌지 않는 타일이 있다면, Coding4Fun Toolkit을 사용해 볼 수도 있습니다. 나는 다른 CheckBox와 함께 CheckBox 컨트롤을 표시 할 것이라고 확신한다. http://www.geekchamp.com/articles/getting-started-with-the-coding4fun-toolkit-tile-control –

+0

내 대답이 유용하다고 생각되면 대답으로 받아들입니다. 많은 감사합니다. –

1

확인란 컨트롤의 이미지를 사용하여 언제든지 "해킹"할 수 있습니다. UI에서 생성 된 컨트롤을 표시하려고 했습니까? 즉 페이지에 추가 하시겠습니까? 코드가 올바르게 실행되는지 확인하기 만하면됩니다.

또는 다른 솔루션은 체크 표시 문자를 사용하는 것입니다 - http://www.fileformat.info/info/unicode/char/2713/index.htm

나는 작동하지 않는 이상한 때문에 내 테스트 응용 프로그램에서이 문제를 복제하려고합니다.

+0

또한 유니 코드 문자를 사용하는 아이디어가 있지만 잘 보이지 않습니다. –

+0

Content 속성을 설정하지 않고 렌더링 확인란을 시도 했습니까? – Filip

+0

예, 아무것도 렌더링되지 않고 타일이 비어 있습니다. –