gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 09:56:52 24 4
gpt4 key购买 nike

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

如果我给这些元素——椭圆和路径——一个带有 x:Name 的名称,我可以从后面的代码中访问它们吗?

看起来样式的椭圆和路径不可见,因为我收到编译错误(C#)。

我会以错误的方式解决这个问题吗?

最佳答案

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

给定简化的 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 .

关于WPF从后面的代码中设置命名样式元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1521964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com