当前位置: 首页 > 编程语言 > C#

如何在不同控件类型中实现依赖属性值继承分享

时间:2023-04-11 12:07:09 C#

如何在不同控件类型中实现依赖属性值继承A有一组我正在创建的自定义控件,每个控件都有各自的基类控制。因为它们各自具有不同的基本控件,所以它们不能共享完全相同的依赖属性。是否可以将依赖属性链接在一起,以便它们可以相互级联?(不确定我是否正确使用术语级联语法)publicclassRCTWindow:ContentControl{publicstaticreadonlyDependencyPropertyRemapColorProperty=DependencyProperty.RegisterAttached("RemapColor",typeof(RemapColors),typeof(RCTWindow),newFrameworkPropertyMetadata(RemapColorsOworkPropertyMetadata,Frame.Inherits|FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,newPropertyChangedCallback(OnVisualChanged)));//...}publicclassRCTButton:Button{publicstaticreadonlyDependencyPropertyRemapColorProperty=DependencyProperty.RegisterofTBColor(RemapofRColor),type),newFrameworkPropertyMetadata(RemapColors.SeaGreen,FrameworkPropertyMetadataOptions.Inherits|FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,newPropertyChangedCallback)Vis新功能;//...}这是xaml。设置父控件的重映射颜色时,按钮默认不会级联。您不应该声明多个独立的附加属性,因为它们之间没有属性值继承。相反,声明一个附加属性并在控件类中使用DependencyProperty.AddOwner。以上就是C#学习教程:不同控件类型中如何实现依赖属性值继承。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——RCT),newFrameworkPropertyMetadata(RemapColors.SeaGreen,FrameworkPropertyMetadataOptions.Inherits|FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));publicstaticRemapColorsGetRemapColor(DependencyObjectobj){return(RemapColors)obj.GetValue(RemapColorProperty);}publicstaticvoidSetRemapColor(DependencyObjectobj,RemapColorsvalue){obj.SetValue(RemapColorProperty,value);}}publicclassRCTButton:Button{publicstaticreadonlyDependencyPropertyRemapPropertyRemapColor=RCT.AddOwner(typeof(RCTButton),newFrameworkPropertyMetadata(OnVisualChanged));公共RemapColorsRemapColor{get{return(RemapColors)GetValue(RemapColorProperty);}设置{设置值ue(RemapColorProperty,值);}}privatestaticvoidOnVisualChanged(DependencyObjectobj,DependencyPropertyChangedEventArgse){Debug.WriteLine("RCTButton.OnVisualChanged:{0}",((RCTButton)obj).RemapColor);}}publicclassRCTWindow:ContentControl{publicstaticreadonlyDependencyPropertyRemapColorProperty=RCT.RemapColorProperty.AddOwner(typeof(RCTWindow),newFrameworkPropertyMetadata(OnVisualChanged));公共RemapColorsRemapColor{get{return(RemapColors)GetValue(RemapColorPropertyValueSetvalue);}set(RemapColorPropertyValueSetvalue););}}privatestaticvoidOnVisualChanged(DependencyObjectobj,DependencyPropertyChangedEventArgse){Debug.WriteLine("RCTWindow.OnVisualChanged:{0}",((RCTWindow)obj).RemapColor);}}本文收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处:

最新推荐
猜你喜欢