zoukankan      html  css  js  c++  java
  • WPF 中 通过点击ListBox中的元素自动选中一整项

    由于WPF中,经常有个问题点击Listbox中的里面的元素经常不会选中某项,选中的项也不会变颜色,这个其实可以通过修改样式去实现。

            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="SnapsToDevicePixels"
                        Value="True" />
                <Setter Property="FocusVisualStyle"
                        Value="{x:Null}" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <Border Name="Border"
                                    Padding="1 1 1 1"
                                    Background="Transparent"
                                    SnapsToDevicePixels="True"
                                    CornerRadius="20">
                                <ContentPresenter />
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsSelected"
                                         Value="True">
                                    <Setter TargetName="Border"
                                            Property="Background"
                                            Value="#D84E20" />
                                    <Setter Property="Foreground"
                                            Value="White" />
                                </Trigger>
                                <Trigger Property="IsEnabled"
                                         Value="false">
                                    <Setter Property="Foreground"
                                            Value="White" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsKeyboardFocusWithin"
                             Value="true">
                        <Setter Property="IsSelected"
                                Value="true" />
                    </Trigger>
    
                    <EventTrigger RoutedEvent="PreviewGotKeyboardFocus">
                        <BeginStoryboard>
                            <Storyboard>
                                <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(ListBoxItem.IsSelected)">
                                    <DiscreteBooleanKeyFrame KeyTime="0"
                                                             Value="True" />
                                </BooleanAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>

    留个笔记作为参考,方便以后使用。感谢您的浏览。

    多看书,少装逼!
  • 相关阅读:
    IT资产管理系统SQL版
    反转单词(C#实现)
    删除数组中重复的元素(C#实现)
    最大子数组之和(C#实现)
    判断是否是三角形
    如何解决SSAS + SSRS + WSS3.0 之间的Windows 集成验证问题
    关于SharpDevelop
    规划一个SharePoint的解决方案
    Scalability Design
    合作意味着分享
  • 原文地址:https://www.cnblogs.com/R00R/p/14687906.html
Copyright © 2011-2022 走看看