2012-03-12 7 views
0

내 목록 상자의 각 항목에 마우스 오버시 시각 효과를 사용하지 않으려면 그리고 사용자가 클릭 할 때 시각 효과를 사용하지 않으려합니다. 목록 상자 맞춤 설정/해제 됨 마우스 오버시 (windows8)

가 나는 그것이 윈도우 폰, 하지만 윈도우 8에 DataTrigger를 사용하여 수행 할 수 있음을 읽어, 우리는 DataTrigger를 사용할 수 없습니다 DataTrigger in WinRT?

다른 내가이 시각 효과를 제거 할 수 있습니까?
StyleSelector/ListViewItemStyleSelector를 보았는데 사용할 수 있습니까?
예인 경우 어떻게 작동하는지 이해하지 못 했으므로 어디서 견본을 찾을 수 있습니까?

<Style x:Key="NullSelectionStyle" TargetType="ListBoxItem"> 
    <Style.Resources> 
     <!-- SelectedItem with focus --> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" /> 
     <!-- SelectedItem without focus --> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" /> 
     <!-- SelectedItem text foreground --> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="{DynamicResource {x:Static SystemColors.ControlTextColorKey}}" /> 
    </Style.Resources> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 

<ListBox ItemContainerStyle="{StaticResource NullSelectionStyle}" ...> 

불행하게도 나는 아직 윈도우 8에 액세스 할 수없는, 그래서가 작동하는 경우 내가 말할 수 없습니다

답변

2

선택한 항목 스타일을 사용하지 의미하는 경우, WPF에서이 작업을 수행 할 수 있습니다 WinRT.

또는 선택 항목이 전혀 필요하지 않은 경우 ItemsControl 만 사용하면됩니다.

예를 들어 <ListBox .../> 대신 <ItemsControl .../>을 사용하십시오. ItemsControl은 ListBox와 같은 항목 목록을 표시하지만 선택된 항목의 개념은 없습니다.

+0

감사를 적용, ItemsControl에는 제대로 작동하지만, (선택한와 마녀 항목을 알고)이 항목은 목록 상자에로 ItemControl에 클릭 할 수 있습니까? – NicoMinsk

+0

내가 선택한 항목에 대한 개념이 없다고 말했기 때문에. ItemsControl에는 선택된 항목이 없습니다. – Phil

+0

좋아, 나는 bindind와 버튼과 태그로 솔루션을 찾았습니다. – NicoMinsk

1

Metro 스타일 앱용 ListBox 템플릿을 편집하려는 경우 MouseOver VisualState에서 애니메이션을 제거 할 수 있습니다. ListBoxItem 템플릿이 작동합니다.

<Style x:Key="NoSelectListBoxItemStyle" TargetType="ListBoxItem"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="ListBoxItem"> 
         <Border x:Name="LayoutRoot" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}"> 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates"> 
            <VisualState x:Name="Normal"/> 
            <VisualState x:Name="MouseOver"/> 
            <VisualState x:Name="Disabled"> 
            </VisualState> 
           </VisualStateGroup> 
           <VisualStateGroup x:Name="SelectionStates"> 
            <VisualState x:Name="Unselected"> 
             <Storyboard> 
              <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="ContentContainer"> 
               <SplineDoubleKeyFrame KeyTime="0" Value="1"/> 
              </DoubleAnimationUsingKeyFrames> 
             </Storyboard> 
            </VisualState> 
            <VisualState x:Name="Selected"/> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
          <ContentControl x:Name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{StaticResource Dark_Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" d:LayoutOverrides="Width"/> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

그리고 스타일을

<ListBox ItemContainerStyle="{StaticResource NoSelectListBoxItemStyle}" /> 
관련 문제