【发布时间】:2018-07-17 15:56:51
【问题描述】:
我有一个具有 DependencyProperty 的自定义 WPF 控件:
public static readonly DependencyProperty DeferedVisibilityProperty;
private static void OnDeferedVisibilityChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
var control = (CircularProgressBar)d;
control.OnDeferedVisibilityChanged();
}
public bool DeferedVisibility {
get => (bool)GetValue(DeferedVisibilityProperty);
set => SetValue(DeferedVisibilityProperty, value);
}
private void OnDeferedVisibilityChanged() {
if(DeferedVisibility) {
VisualStateManager.GoToState(this, "Visible", true);
Visibility = Visibility.Visible;
} else {
VisualStateManager.GoToState(this, "Collapsed", true);
Visibility = Visibility.Collapsed;
}
}
现在我们可以在没有 bool-to-visibility 转换器的情况下设置可见性。 使用 Visibility DependencyProperty 时,它不再起作用,所以我想将其标记为已过时。
我知道你可以像这样标记成员[Obsolete("Please use DeferedVisibility")]。
那么如何将基类的可见性属性标记为过时呢?
【问题讨论】: