WPF从代码后面设置命名样式元素?

栏目: 编程工具 · 发布时间: 7年前

内容简介:我有一个用户控件,它将样式应用于按钮,样式包含ControlTemplate部分.在ControlTemplate中,有各种UI元素,如Ellipse和Path.如果我给这些元素 – Ellipse和Path – 一个带x:Name的名称,我可以从后面的代码中访问它们吗?看起来样式的Ellipse和Path不可见,因为我收到编译错误(C#).

我有一个用户控件,它将样式应用于按钮,样式包含ControlTemplate部分.在ControlTemplate中,有各种UI元素,如Ellipse和Path.

如果我给这些元素 – Ellipse和Path – 一个带x:Name的名称,我可以从后面的代码中访问它们吗?

看起来样式的Ellipse和Path不可见,因为我收到编译错误(C#).

我是以错误的方式来做这件事的吗?

由于模板可以多次实例化,因此无法通过x:Name绑定生成的成员.相反,您必须在应用于控件的模板中找到命名元素.

给出简化的XAML:

<ControlTemplate x:Key="MyTemplate">
    <Ellipse x:Name="MyEllipse" />
</ControlTemplate>

你会做这样的事情:

var template = (ControlTemplate)FindResource("MyTemplate");

template.FindName("MyEllipse", myControl);

甚至更简单:

var ellipse = (Ellipse)myControl.Template.FindName("MyEllipse", myControl);

你可以阅读约 FrameworkTemplate.FindName .

一些例子和讨论 here , herehere .

翻译自:https://stackoverflow.com/questions/1521964/wpf-set-named-style-elements-from-code-behind


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

慕课革命

慕课革命

汤敏 / 中信出版社 / 2015-1-1 / 39.00元

《慕课革命》,国内唯一一本关于全方面了解慕课的权威著作,全面阐述慕课理念与中国实践。 林毅夫、俞敏洪、徐小平、王强作序推。 大规模在线教育的慕课革命大幕已经拉开,这是一场基于互联网及移动互联网的教育大变革。根据网易教育联合有道发起的《2013中国在线教育新趋势调查报告》揭示,中国在线教育正呈现出六大趋势,包括互联网成为人们获取知识的最常见渠道;移动端学习方式已经开始成为人们接受的学习方......一起来看看 《慕课革命》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具