programing

항목을 가로로 배치하는 WPF ListBox

goodcopy 2021. 1. 17. 11:54
반응형

항목을 가로로 배치하는 WPF ListBox


선택한 이미지를 표시하기위한 WPF 응용 프로그램을 작성하려고합니다. 사용 가능한 모든 이미지를 창 상단의 배너에 표시하고 추가 처리를 위해 기본 창에 기본 선택된 이미지를 표시하려고합니다.

왼쪽 에 이미지를 세로로 표시 하는 목록을 원하면 데이터 바인딩을 사용하여이 작업을 매우 우아하게 수행 할 수 있습니다.

    <ListBox 
        Name="m_listBox"
        IsSynchronizedWithCurrentItem="True"
        ItemsSource="{Binding}"            
        >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Image Source="{Binding}" Width="60" Stretch="Uniform" />
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

이것을 수직 대신 수평으로 만들 수있는 간단한 방법이 있습니까? 솔루션의 주요 요구 사항은 다음과 같습니다.

  • 항목은 데이터 바인딩을 사용하여 채워집니다.
  • 선택한 항목은 사용자가 클릭하는 것만으로 변경됩니다.

WrapPanel

 <ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel IsItemsHost="True" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBoxItem>listbox item 1</ListBoxItem>
    <ListBoxItem>listbox item 2</ListBoxItem>
    <ListBoxItem>listbox item 3</ListBoxItem>
    <ListBoxItem>listbox item 4</ListBoxItem>
    <ListBoxItem>listbox item 5</ListBoxItem>
</ListBox>

WPF 자습서


컨트롤 의 기본값 ItemsPanel이므로 ListBox컨트롤에 대한 VirtualizingStackPanel일반적인 기본 환경을 원하지만 가로로 배치 한 경우이를 지정하고 방향을 변경해야합니다.

예:

<ListBox>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel IsItemsHost="True" Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

참조 URL : https://stackoverflow.com/questions/1292516/wpf-listbox-that-lays-out-its-items-horizontally

반응형