반응형
ListView를 사용하여 목록을 타일처럼 표시하기도 하는데 ListView는 배경색이나 선택 색상을 변경할 때 조금 힘든 부분이 있습니다. 그래서 배경이나 이미지를 사용하여 처리할 때는 ListView보다는 ListBox를 사용하는 것이 좋은데요. 아래는 ListBox를 사용하여 배경색이나 선택 색상을 변경할 수 있는 WPF View 코드입니다.
ListBox 스타일 정의
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<Window.Resources>
<Style x:Key="ListBoxStyle1" TargetType="ListBoxItem" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border Background="{TemplateBinding Background}" BorderThickness="1" CornerRadius="5">
<Grid Width="100">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Margin="5,0,0,0" Text="{Binding PART_NO}" />
<TextBlock Grid.Row="1" Margin="5,0,0,0" Text="{Binding PART_NAME}" />
<TextBlock Grid.Row="2" Margin="5,0,0,0" Text="{Binding USER_ID}" />
<TextBlock Grid.Row="3" Margin="5,0,0,0" Text="{Binding USER_NAME}" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsVisible" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Black" />
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#ffffcc00" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Background" Value="#00aa88" />
</Trigger>
</ControlTemplate.Triggers >
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
|
cs |
실제 사용 코드
1
2
3
4
5
6
7
8
9
10
11
|
<ListBox x:Name="xlist"
SelectionMode="Single"
ItemContainerStyle="{StaticResource ListBoxStyle1}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel></WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
|
cs |
결과
너비를 지정하는 부분은 소스코드에서 Load나 SizeChanged 이벤트에서 처리해야 합니다.
반응형
'IT > WPF' 카테고리의 다른 글
비주얼 스튜디오 InitializeComponent 빨간 줄(오류표시선) 에러 (0) | 2022.09.26 |
---|---|
dll 컨트롤 라이브러리 exe 폴더로 복사 방법 (빌드 이벤트 명령어) (0) | 2022.06.01 |
WPF Panel 종류 (0) | 2022.05.30 |
댓글