2011-07-15 8 views
0

テンプレートを編集してItemContainerStyleテンプレートに入ると、状態はUnselected、Selected、MouseOverなどのように定義されますが、これらの状態では実際には何も行われません。この動作は正常ですか?私はSilverlightリストボックスで作業しました。その中で、ItemContainerStyleはすべての状態を定義し、多くのプロパティが変更されます。 WPFリストボックスはほとんど混乱しません。これは私がItemContainerStyleの編集XAMLで参照してください:WPFリストボックスのItemContainerStyle状態に何も定義されていないのはなぜですか?

<Style x:Key="ListBoxItemContainerStyle" TargetType="{x:Type ListBoxItem}"> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/> 
      <Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/> 
      <Setter Property="Padding" Value="2,0,0,0"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type ListBoxItem}"> 
         <Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true" > 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates"> 
            <VisualState x:Name="Normal"/> 
            <VisualState x:Name="MouseOver"/> 
            <VisualState x:Name="Disabled"/> 
           </VisualStateGroup> 
           <VisualStateGroup x:Name="SelectionStates"> 
            <VisualState x:Name="Unselected"/> 
            <VisualState x:Name="Selected"/> 
            <VisualState x:Name="SelectedUnfocused"/> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
          <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/> 
         </Border> 

        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

ここに与えられただけのContentPresenterがあります。マウスオーバーが完了したときにグラデーションを変更したい。私はまた、アイテムのサイズをスケールしたい。それ、どうやったら出来るの?事前に

感謝:)

+0

MouseOverでは、背景を「スナップ」で変更したいだけですか、変更をアニメーション化したいですか? – XAMeLi

答えて

0

必要な状態内部のストーリーボードを定義し、アニメーションなどの変更を行う必要がありyou`ll WPFでの状態を使用して。 アイテムコンテナの一部を変更する場合は、たとえば、ボーダースタイル内のIsMouseOverプロパティにTriggerを使用する方が簡単です。

関連する問題