gpt4 book ai didi

c# - 程序添加时找不到命名的 WPF 控件

转载 作者:行者123 更新时间:2023-11-30 14:50:04 24 4
gpt4 key购买 nike

我们正在使用第三方编辑控件 (TxTextControl),它具有各种工具栏和其他可以附加到它的控件。这是通过将工具栏放置在 View 中的某个位置并按名称关联它们来完成的。它看起来像这样:

<tx:RulerBar x:Name="rulerBar"/>
<tx:TextControl RulerBar="rulerBar"/>

这在 XAML 中定义时工作正常,但我们有一个场景需要按过程构建它。出于某种原因,当我们尝试关联 RulerBar(或任何其他工具栏/控件)时,它会抛出无法定位工具栏的错误。例如:

DockPanel dock = new DockPanel();
dock.Children.Add(new RulerBar { Name="rulerBar" });
dock.Children.Add(new TextControl { RulerBar = "rulerBar" });

我还尝试添加 Loaded 事件处理程序并推迟 RulerBar 关联,直到两个控件都完全加载,但我仍然遇到相同的错误。这应该简单地工作,还是我缺少一些技巧?不幸的是,名称关联是它们提供的唯一机制,我们无法通过引用关联控件。

最佳答案

在 WPF 中,XAML 解析过程将元素的 x:Name 属性的值与其名称相关联,从而可以按名称进行查找。

那么为什么在 XAML 中分配 Name 属性有效?这是因为 Name 属性标有一个属性,该属性指示解析器像对待 x:Name 属性一样对待它。

由于您没有实现与 xaml 解析器相同的逻辑,因此您必须进行一些额外的编码才能使您的代码正常工作。我自己不知道该怎么做,但幸运的是@Grx70 做到了..看到他的回答。

关于c# - 程序添加时找不到命名的 WPF 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37597205/

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