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

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

内容简介:我有一个用户控件,它将样式应用于按钮,样式包含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


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

查看所有标签

猜你喜欢:

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

HTTP Developer's Handbook

HTTP Developer's Handbook

Chris Shiflett / Sams Publishing / 2003-3-29 / USD 39.99

The largest group with an unsatisfied demand for a good book on HTTP is the worldwide group of Web developers. A good book on HTTP can help new and old Web developers alike, as a thorough understandin......一起来看看 《HTTP Developer's Handbook》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具