using System.Windows;
using System.ComponentModel;
using System.Windows.Controls;
namespace CustomUI
{
///
/// 分段控件的子项
///
/// add by zhidf 2017.7.9
public class SegmentItem : ListBoxItem
{
#region Property
private SegmentControl ParentItemsControl
{
get { return this.ParentSelector as SegmentControl; }
}
internal ItemsControl ParentSelector
{
get { return ItemsControl.ItemsControlFromItemContainer(this) as ItemsControl; }
}
#endregion
#region DependencyProperty
#region IsFirstItem
///
/// 获取或者设置该项在列表中是否是第一个
///
[Bindable(true), Description("获取或者设置该项在列表中是否是第一个")]
public bool IsFirstItem
{
get { return (bool)GetValue(IsFirstItemProperty); }
set { SetValue(IsFirstItemProperty, value); }
}
public static readonly DependencyProperty IsFirstItemProperty =
DependencyProperty.Register("IsFirstItem", typeof(bool), typeof(SegmentItem), new PropertyMetadata(false));
#endregion
#region IsMiddleItem
///
/// 获取或者设置该项在列表中是否是中间的一个
///
[Bindable(true), Description("获取或者设置该项在列表中是否是中间的一个")]
public bool IsMiddleItem
{
get { return (bool)GetValue(IsMiddleItemProperty); }
set { SetValue(IsMiddleItemProperty, value); }
}
public static readonly DependencyProperty IsMiddleItemProperty =
DependencyProperty.Register("IsMiddleItem", typeof(bool), typeof(SegmentItem), new PropertyMetadata(false));
#endregion
#region IsLastItem
///
/// 获取或者设置该项在列表中是否是最后一个
///
[Bindable(true), Description("获取或者设置该项在列表中是否是最后一个")]
public bool IsLastItem
{
get { return (bool)GetValue(IsLastItemProperty); }
set { SetValue(IsLastItemProperty, value); }
}
public static readonly DependencyProperty IsLastItemProperty =
DependencyProperty.Register("IsLastItem", typeof(bool), typeof(SegmentItem), new PropertyMetadata(false));
#endregion
#region CornerRadius
///
/// 获取或者设置空间的边框圆角
///
[Bindable(true), Description("获取或者设置空间的边框圆角")]
public CornerRadius CornerRadius
{
get { return (CornerRadius)GetValue(CornerRadiusProperty); }
set { SetValue(CornerRadiusProperty, value); }
}
public static readonly DependencyProperty CornerRadiusProperty =
DependencyProperty.Register("CornerRadius", typeof(CornerRadius), typeof(SegmentItem));
#endregion
#endregion
#region Constructors
static SegmentItem()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(SegmentItem), new FrameworkPropertyMetadata(typeof(SegmentItem)));
}
#endregion
#region Override
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
this.MouseLeftButtonUp += ButtonGroupItem_MouseLeftButtonUp;
}
#endregion
#region private function
#endregion
#region Event Implement Function
private void ButtonGroupItem_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
this.ParentItemsControl.OnItemClick(this, this);
}
#endregion
}
}