47 lines
2.7 KiB
C#
47 lines
2.7 KiB
C#
using System.Windows;
|
|
using HandyControl.Data;
|
|
|
|
namespace HandyControl.Controls;
|
|
|
|
public class EdgeElement
|
|
{
|
|
public static readonly DependencyProperty LeftContentProperty = DependencyProperty.RegisterAttached(
|
|
"LeftContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged));
|
|
|
|
public static void SetLeftContent(DependencyObject element, object value) => element.SetValue(LeftContentProperty, value);
|
|
|
|
public static object GetLeftContent(DependencyObject element) => element.GetValue(LeftContentProperty);
|
|
|
|
public static readonly DependencyProperty TopContentProperty = DependencyProperty.RegisterAttached(
|
|
"TopContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged));
|
|
|
|
public static void SetTopContent(DependencyObject element, object value) => element.SetValue(TopContentProperty, value);
|
|
|
|
public static object GetTopContent(DependencyObject element) => element.GetValue(TopContentProperty);
|
|
|
|
public static readonly DependencyProperty RightContentProperty = DependencyProperty.RegisterAttached(
|
|
"RightContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged));
|
|
|
|
public static void SetRightContent(DependencyObject element, object value) => element.SetValue(RightContentProperty, value);
|
|
|
|
public static object GetRightContent(DependencyObject element) => element.GetValue(RightContentProperty);
|
|
|
|
public static readonly DependencyProperty BottomContentProperty = DependencyProperty.RegisterAttached(
|
|
"BottomContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged));
|
|
|
|
public static void SetBottomContent(DependencyObject element, object value) => element.SetValue(BottomContentProperty, value);
|
|
|
|
public static object GetBottomContent(DependencyObject element) => element.GetValue(BottomContentProperty);
|
|
|
|
public static readonly DependencyProperty ShowEdgeContentProperty = DependencyProperty.RegisterAttached(
|
|
"ShowEdgeContent", typeof(bool), typeof(EdgeElement), new PropertyMetadata(ValueBoxes.FalseBox));
|
|
|
|
public static void SetShowEdgeContent(DependencyObject element, bool value) => element.SetValue(ShowEdgeContentProperty, ValueBoxes.BooleanBox(value));
|
|
|
|
public static bool GetShowEdgeContent(DependencyObject element) => (bool) element.GetValue(ShowEdgeContentProperty);
|
|
|
|
private static void OnEdgeContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) =>
|
|
SetShowEdgeContent(d, !(GetLeftContent(d) == null && GetTopContent(d) == null &&
|
|
GetRightContent(d) == null && GetBottomContent(d) == null));
|
|
}
|