일부 개체가있는 간단한 ListBox가 있습니다. 마우스가 어떤 오브젝트 위에 있으면 오브젝트 배경색이 변경됩니다.항목에 마우스를 올려 놓았을 때 ListBox에서 항목의 색상 변경을 비활성화하는 방법은 무엇입니까?
개체를 사용하지 않고이 색 변경을 피할 수 있습니까? (이 개체에는 사용하도록 설정해야하는 버튼이 포함되어 있습니다.)
도움 주셔서 감사합니다.
일부 개체가있는 간단한 ListBox가 있습니다. 마우스가 어떤 오브젝트 위에 있으면 오브젝트 배경색이 변경됩니다.항목에 마우스를 올려 놓았을 때 ListBox에서 항목의 색상 변경을 비활성화하는 방법은 무엇입니까?
개체를 사용하지 않고이 색 변경을 피할 수 있습니까? (이 개체에는 사용하도록 설정해야하는 버튼이 포함되어 있습니다.)
도움 주셔서 감사합니다.
ListBoxItem 템플릿에서 시각적 상태 애니메이션을 제거 할 수 있습니다. 기본 템플릿은 here입니다.
마우스 오버 배경이없는 스타일은 이렇게 보이는 : 당신은 그냥 당신이 ItemsControl에 사용할 수 있습니다 강조하지 않도록하려면
<Style x:Key="IgnoreMouseOverItem" TargetType="ListBoxItem">
<Setter Property="Padding" Value="3" />
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="VerticalContentAlignment" Value="Top" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="TabNavigation" Value="Local" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Grid Background="{TemplateBinding Background}">
<vsm:VisualStateManager.VisualStateGroups>
<vsm:VisualStateGroup x:Name="CommonStates">
<vsm:VisualState x:Name="Normal" />
<vsm:VisualState x:Name="MouseOver">
<!--<Storyboard>
<DoubleAnimation Storyboard.TargetName="fillColor" Storyboard.TargetProperty="Opacity" Duration="0" To=".35"/>
</Storyboard>-->
</vsm:VisualState>
<vsm:VisualState x:Name="Disabled">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="Opacity" Duration="0" To=".55" />
</Storyboard>
</vsm:VisualState>
</vsm:VisualStateGroup>
<vsm:VisualStateGroup x:Name="SelectionStates">
<vsm:VisualState x:Name="Unselected" />
<vsm:VisualState x:Name="Selected">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="fillColor2" Storyboard.TargetProperty="Opacity" Duration="0" To=".75"/>
</Storyboard>
</vsm:VisualState>
</vsm:VisualStateGroup>
<vsm:VisualStateGroup x:Name="FocusStates">
<vsm:VisualState x:Name="Focused">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Visibility" Duration="0">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<Visibility>Visible</Visibility>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</vsm:VisualState>
<vsm:VisualState x:Name="Unfocused"/>
</vsm:VisualStateGroup>
</vsm:VisualStateManager.VisualStateGroups>
<Rectangle x:Name="fillColor" Opacity="0" Fill="#FFBADDE9" IsHitTestVisible="False" RadiusX="1" RadiusY="1"/>
<Rectangle x:Name="fillColor2" Opacity="0" Fill="#FFBADDE9" IsHitTestVisible="False" RadiusX="1" RadiusY="1"/>
<ContentPresenter
x:Name="contentPresenter"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"/>
<Rectangle x:Name="FocusVisualElement" Stroke="#FF6DBDD1" StrokeThickness="1" Visibility="Collapsed" RadiusX="1" RadiusY="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
그리고이 목록 상자
<ListBox ItemContainerStyle="{StaticResource IgnoreMouseOverItem}" />
방금 태그가 누락되었습니다 ;-) –
@ user2056563 정확히 무엇을 원하십니까? 왜 지금 우리와 같은 페이지에 대한 링크를 게시 했습니까? – vorrtex
@vorrtex 죄송합니다. 해당 의견을 삭제하겠습니다.이 http://stackoverflow.com/questions/22578128/list-box-with-multiple-data-template-style-for-selected-item에 대한 도움이 필요했습니다. – user2056563
에 새로운 스타일을 적용합니다.
마우스가 위에있을 때 목록 상자 항목 컨테이너를 강조 표시하고 싶지 않다고 가정했습니다. 그러나 "객체"는 일종의 다른 컨트롤이기 때문에 유형에 대한 정보가 중요합니다. – vorrtex