wpf 附加属性 RegisterAttached 内容属性

发布于:2024-06-30 ⋅ 阅读:(56) ⋅ 点赞:(0)

    //
    // 摘要:
    //     选中时展示的元素
    public static readonly DependencyProperty CheckedElementProperty = DependencyProperty.RegisterAttached("CheckedElement", typeof(object), typeof(StatusSwitchElement), new PropertyMetadata((object)null));

    //
    // 摘要:
    //     是否隐藏元素
    public static readonly DependencyProperty HideUncheckedElementProperty = DependencyProperty.RegisterAttached("HideUncheckedElement", typeof(bool), typeof(StatusSwitchElement), new PropertyMetadata(ValueBoxes.FalseBox));

    public static void SetCheckedElement(DependencyObject element, object value)
    {
        element.SetValue(CheckedElementProperty, value);
    }

    public static object GetCheckedElement(DependencyObject element)
    {
        return element.GetValue(CheckedElementProperty);
    }

    public static void SetHideUncheckedElement(DependencyObject element, bool value)
    {
        element.SetValue(HideUncheckedElementProperty, ValueBoxes.BooleanBox(value));
    }

    public static bool GetHideUncheckedElement(DependencyObject element)
    {
        return (bool)element.GetValue(HideUncheckedElementProperty);
    }
}

用法:

 <Style x:Key="DemoInfoSortButtonStyle" BasedOn="{StaticResource ToggleButtonCustom}" TargetType="ToggleButton" x:Shared="False">
     <Setter Property="Content">
         <Setter.Value>
             <Border CornerRadius="4" BorderThickness="1" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource RegionBrush}" Height="30" Width="30" >
                 <Image Stretch="None" Source="pack://application:,,,/Resource/Image/LeftMainContent/SortAscending_gray_16x.png"/>
             </Border>
         </Setter.Value>
     </Setter>
     <Setter Property="hc:StatusSwitchElement.CheckedElement">
         <Setter.Value>
             <Border CornerRadius="4" Height="30" Width="30" BorderThickness="1" BorderBrush="{DynamicResource PrimaryBrush}"/>
         </Setter.Value>
     </Setter>
 </Style>
 


网站公告

今日签到

点亮在社区的每一天
去签到