using System.Windows; using System.Windows.Controls; using System.Windows.Media; using Bolt.Toolkit.Wpf.Data.Enum; namespace VirgoUI.Client.Controls.Parts { /// /// Door.xaml 的交互逻辑 /// public partial class Door : UserControl { public DoorState State { get { return (DoorState)GetValue(StateProperty); } set { SetValue(StateProperty, value); } } // Using a DependencyProperty as the backing store for Status. This enables animation, styling, binding, etc... public static readonly DependencyProperty StateProperty = DependencyProperty.Register("State", typeof(DoorState), typeof(Door), new FrameworkPropertyMetadata(DoorState.Unknown, FrameworkPropertyMetadataOptions.AffectsRender)); public Door() { InitializeComponent(); } protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); switch (State) { case DoorState.Open: //border.BorderThickness = new Thickness(0); image.Visibility = Visibility.Hidden; break; case DoorState.Close: image.Visibility = Visibility.Visible; //border.BorderThickness = new Thickness(0); break; case DoorState.Unknown: image.Visibility = Visibility.Visible; //border.BorderThickness = new Thickness(2); break; default: break; } } } }