void PowerListBoxItem_Loaded(object sender, RoutedEventArgs e)
        {
            if (DesignerProperties.GetIsInDesignMode(this))
            {
                return;
            }
            //初始化列表项的多选状态
            CanCheck = ListBox.IsMultipleSelectEnable && ListBox.IsMultipleSelect;
            //初始化该列表项的可视状态
            if (ListBox.EnableScrollAnimation)
            {
                var index = GetIndexInListBox();
                if (index < ListBox.FirstVisibleIndex || index > ListBox.LastVisibleIndex)
                {
                    VisualField = VisualFieldState.Out;
                }
                else
                {
                    VisualField = VisualFieldState.UpIn;
                }
            }
            //初始化列表项的漂浮状态
            _floatingElements.Clear();
            var eles = this.Descendants <FrameworkElement>().Where(GetIsFloatingElement);

            eles.ForEachEx(t =>
            {
                _floatingElements.Add(t);
                t.Tag = GetDefaultFloatingEffect(t);
            });
            _floatingElements.ForEach(t => Floating(IsSelected));
        }
 /// <summary>
 /// 不会触发状态的改变
 /// </summary>
 /// <param name="value"></param>
 internal void SetVisualFieldInternal(VisualFieldState value)
 {
     if (ListBox.EnableScrollAnimation)
     {
         Opacity = value != VisualFieldState.Out ? 1 : 0;
     }
     else
     {
         Opacity = 1;
     }
     _visualField = value;
     Floating(_visualField != VisualFieldState.Out && IsSelected && CanCheck);
 }
 /// <summary>
 /// 跳转到指定的状态
 /// </summary>
 /// <param name="visualField"></param>
 internal void GoToVisualFieldState(VisualFieldState visualField)
 {
     Opacity = 1;
     if (!ListBox.EnableScrollAnimation || DesignerProperties.GetIsInDesignMode(this))
     {
         return;
     }
     if (_visualField == VisualFieldState.Out)
     {
         //不在可视区域的列表项Opacity设为0,这样当它进入可视区域时,动画效果会更好
         Opacity = 0;
         VisualStateManager.GoToState(this, "OutVisualField", true);
     }
     else if (_visualField == VisualFieldState.UpIn)
     {
         VisualStateManager.GoToState(this, "UpInVisualField", true);
     }
     else
     {
         VisualStateManager.GoToState(this, "DownInVisualField", true);
     }
 }
 /// <summary>
 /// 不会触发状态的改变
 /// </summary>
 /// <param name="value"></param>
 internal void SetVisualFieldInternal(VisualFieldState value)
 {
     if (ListBox.EnableScrollAnimation)
         Opacity = value != VisualFieldState.Out ? 1 : 0;
     else
         Opacity = 1;
     _visualField = value;
     Floating(_visualField != VisualFieldState.Out && IsSelected && CanCheck);
 }
 /// <summary>
 /// 跳转到指定的状态
 /// </summary>
 /// <param name="visualField"></param>
 internal void GoToVisualFieldState(VisualFieldState visualField)
 {
     Opacity = 1;
     if (!ListBox.EnableScrollAnimation || DesignerProperties.GetIsInDesignMode(this))
         return;
     if (_visualField == VisualFieldState.Out)
     {
         //不在可视区域的列表项Opacity设为0,这样当它进入可视区域时,动画效果会更好
         Opacity = 0;
         VisualStateManager.GoToState(this, "OutVisualField", true);
     }
     else if (_visualField == VisualFieldState.UpIn)
     {
         VisualStateManager.GoToState(this, "UpInVisualField", true);
     }
     else
     {
         VisualStateManager.GoToState(this, "DownInVisualField", true);
     }
 }