将现有标准属性更改为DependencyProperty

时间:2014-07-08 19:43:06

标签: wpf xaml

通过继承MediaElement类然后在继承类的新类中创建DependencyProperty,可以将MediaElement.Position属性更改为DependencyProperty吗?

怎么做? AFAIK DependencyProperty会停止默认访问者的正常行为,如何重新连接事物以便在更改后不分解?

我想通过Binding更新Slider.Value,因此我需要MediaElement.Position作为DependencyProperty。我知道我可以用DispatcherTimer做到这一点,但我认为这不是专业解决方案。

1 个答案:

答案 0 :(得分:0)

您可以创建自定义控件(从MediaElement继承的无XAML控件)或在其可视树中某处具有MediaElement的UserControl。

在任何一种情况下,创建DependencyProperty,并使用PropertyChangedCallBack(在FrameworkPropertyMetadata中)响应所做的更改,并使用事件以另一种方式进行监听。

在任何一种情况下,您都要创建一个新控件来代替MediaElement。用户控件的优点是您只公开所需的属性。缺点是你必须全部暴露它们。即使您不想使用它,自定义控件也会公开Position属性。