2012-03-14 2 views
0

다음 목록 상자를 정의했으며 here이라는 ShinyRed 테마를 사용하고 있습니다. 그러나 레이블의 텍스트 위로 마우스를 가져 가면 행 색상 만 변경된다는 것을 알았습니다. 내가 목록 항목의 선상에 있다면 색을 바꿀 행을 얻고 싶습니다. 이 문제를 어떻게 해결할 수 있습니까?마우스 오버시 ListBoxItem이 강조 표시되지 않는 이유는 무엇입니까?

<ListBox Grid.Row="1" ItemsSource="{Binding Categories}" ScrollViewer.CanContentScroll="False"> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <Label Content={Binding DisplayName}"/> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

답변

1

항목을 늘리려면 ListBox.ItemContainerStyle을 사용하십시오.

<ListBox.ItemContainerStyle> 
    <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
    </Style> 
</ListBox.ItemContainerStyle> 

을 (여전히 텍스트 만에 반응하는 경우가 여전히 그 테마의 ListBoxItem 컨트롤 템플릿을 작동하지 않는 경우에도 구타 좀있는 Label.Background Transparent에 히트 테스트를 설정해보십시오. 그리고)
+0

그 아이디어 중 어느 것도 작동하지 않습니다. 안에 ItemContainerStyle을 넣으면 아이템이 완전히 흰색이됩니다. 내가 가져갈 때까지 텍스트가 보이지 않습니다. 다른 아이디어? – bsh152s

+0

@ bsh152s : 그렇습니다. 그렇지 않으면 테마가 있기 때문에 ['BasedOn'] (http://msdn.microsoft.com/en-us/library/system.windows.style.basedon.aspx)가 필요합니다. overidden. –

관련 문제