为什么在WPF列表框的ItemContainerStyle状态中没有任何定义?



当我编辑模板并进入ItemContainerStyle模板时,状态被定义为未选中,选中,鼠标悬停等。但实际上这些州什么都没做。这种行为正常吗?我使用过Silverlight Listbox。在其中,ItemContainerStyle定义了所有的状态和许多属性。WPF列表框有点混乱。当我编辑ItemContainerStyle:

时,看到这是xaml
<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。我想改变渐变,当鼠标在完成。我还想缩放项目的大小。我怎么做呢?

提前感谢:)

当在WPF中使用状态时,你必须在所需的状态中定义一个故事板,并将其更改为动画。如果你想改变项目容器的一些属性,可能更简单的方法是在border样式中使用Trigger on IsMouseOver属性,例如

相关内容

  • 没有找到相关文章

最新更新