안녕하세요. 국가적으로 슬픈 일이 있는 요즘 날씨는 왜 이리도 화창한지...
그래도 좋은 날씨 덕분에 덜 우울할 수 있는 것 같습니다.
실버라이트 개발자 여러분 ListBox에 Item들을 2차원적으로 배열할 필요가 있을 때에는
ItemsPanel로 WrapPanel을 많이 쓰실 거예요.
WrapPanel은 실버라이트 툴킷의 Microsoft.Windows.Control.dll를 참조 추가하시면 사용하실 수 있구요.
실버라이트 툴킷은 여기서 최신버전을 얻으실 수 있습니다.
WrapPanel 다 좋은데 효험을 보기 위해서는 보통 Width를 고정을 하고 쓰실 겁니다.
근데 UI가 어디 그렇습니까? ListBox는 여러군데 다양한 사이즈로 쓰이고 내부의 WrapPanel은 사이즈를 고정해 줘야하고...
그러다 보면 ItemPanelTemplate을 사이즈 별로 만들게 되는 경우도 있겠죠. 물론 안좋은 케이스입니다.
App.xaml (안좋은 예)
<ItemsPanelTemplate x:Key="WrapPanelStyle580"> <controls:WrapPanel Width="580"/> </ItemsPanelTemplate> <ItemsPanelTemplate x:Key="WrapPanelStyle840"> <controls:WrapPanel Width="840"/> </ItemsPanelTemplate>저 Width 프로퍼티를 ListBox의 프로퍼티로 TemplateBinding을 해보려는 시도도 해보았지만, 안 되더군요.
// 2009년 5월 26일이 되자 제대로 된 방법을 찾았습니다.
App.xaml (젤 좋은 예)
<ItemsPanelTemplate x:Key="WrapPanelStyle"> <controls:WrapPanel /> </ItemsPanelTemplate>
그냥 WrapPanel 쓰구요.
<LISTBOX ItemsPanel="{StaticResource WrapPanelStyle}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" />
ScrollViewer.HorizontalScrollBarVisibility 이것만 Disabled로 설정하는 것만으로 해결...
'Silverlight > Tips' 카테고리의 다른 글
Google Analytics로 사용자 PC의 실버라이트 플러그인 설치 현황 파악하기 (4) | 2009.07.13 |
---|---|
Silverlight 3 : 브라우져 줌을 지원합시다. (0) | 2009.07.13 |
[Tip] Collection 바인딩과 InvalidOperationException (7) | 2009.06.04 |
Data Class에 DataContract 등의 선언없이 WCF 사용하기 in .NET 3.5 SP1 (4) | 2009.05.08 |
Visual Studio에서 XAML을 열 때 [미리보기] 안하기 (6) | 2009.04.27 |
Silverlight Tools를 설치하다 오류를 만났을 때 (2) | 2009.04.24 |
Daum 위젯뱅크에 실버라이트 올리기 기본코드 (4) | 2008.10.30 |