- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
详解WPF中用户控件和自定义控件的使用
get{return(object)GetValue(CommandParemeterProperty);}
set{SetValue(CommandParemeterProperty,value);}
publicstaticreadonlyDependencyPropertyCommandParemeterProperty=
DependencyProperty.Register(CommandParemeter,typeof(object),typeof(UserControl1),newPropertyMetadata(0));
使用用户控件
Windowx:...
xmlns:local=clr-namespace:WpfApp19
Title=MainWindowHeight=450Width=800
Grid
local:UserControl1value={Binding}Command={Binding}/
/Grid
/Window
自定义控件
点击添加自定义控件后,会增加一个CustomControl1.cs文件以及一个Themes目录,在该目录下有一个Generic.xaml文件,该文件就是自定义控件的style。我们经常针对某些控件进行编辑模板-创建副本的操作而产生的style,其实就是Generic.xaml中定义的style。另外,有时我们可能遇到一种情况,也就是相同的软件在不同的Windows版本下运行,表现形式可能会不同,甚至某些系统下运行不了,这就是和不同系统下的默认的Theme不同。其实wpf控件找不到自定义的样式时,会从系统获取样式,查找顺序是,先查找所在的程序集,如果程序集定义了ThemeInfo特性,那么会查看ThemeInfoDictionaryLocation的属性值,该属性如果是None则说明没有特定的主题资源,值为SourceAssembly,说明特定资源定义在程序集内部,值为ExternalAssembly则说明在外部,如果还是没有找到,则程序会在自身的themes/generic.xaml中获取,在generic.xaml中获取的其实就和系统默认样式相关。
不同xaml所对应的系统主题
按钮案例
C#文件
publicclassSwitch:ToggleButton
staticSwitch()
//通过重写Metadata,控件就会通过程序集themes文件夹下的generic.xaml来寻找系统默认样式
DefaultStyleKeyProperty.OverrideMetadata(typeof(Switch),newFrameworkPropertyMetadata(typeof(Switch)));
Themes文件夹下的Generic.xaml文件
注意在该文件中不能有中文,注释也不行
StyleTargetType={x:Typelocal:Switch}
SetterProperty=Template
Setter.Value
ControlTemplateTargetType={x:Typelocal:Switch}
Grid
Border
Name=dropdown
Width={BindingRelativeSource={RelativeSourceSelf},Path=ActualHeight}
Margin=-23
CornerRadius={BindingRelativeSource={RelativeSourceSelf},Path=ActualHeight}
Visibility=Collapsed
Border.Background
RadialGradientBrush
GradientStopOffset=1Color=Transparent/
GradientStopOffset=0.7Color=#5500D787/
GradientStopOffset=0.59Color=Transparent/
/RadialGradientBrush
/Border.Background
/Border
Border
Name=bor
Width={Bin
您可能关注的文档
最近下载
- 26. 26个英文字母-复习课件-1字母闯关游戏(共30张PPT).pdf VIP
- 上海市职业技能等级认定试卷 模具工(四级)考场、考生准备通知单02.doc VIP
- 健康险手册使用说明.pptx VIP
- 急性心肌梗死诊断及治疗课件.ppt VIP
- 饲料添加剂项目企业经营战略手册(参考).docx
- 光伏电站项目建设方案.docx
- 数字智慧方案5496丨商业综合体地块智能化系统设计汇报方案(66页PPT).pptx VIP
- 体例格式9:工学一体化课程《小型网络安装与调试》任务1学习任务工作页.docx VIP
- 城投集团防汛防台专项应急预案(2018版).docx VIP
- 量子之年:从2025年从概念到现实报告(英文版).pdf VIP
文档评论(0)