C# 无法更新WPF自定义控件中的控件

C# 无法更新WPF自定义控件中的控件,c#,.net,wpf,C#,.net,Wpf,我已经创建了一个自定义控件,其中包含一个按钮。该按钮被设置为样式,以便容纳两行的网格,第一行是图像,第二行是文本块。我已经为自定义控件编写了一个事件处理程序。当鼠标进入对象的路径时,MouseEnter事件触发,我尝试更改TextBlock的FontSize和前景色,但是控件不会更新。相比之下,我尝试修改常规TextBlock的属性(不是自定义控件和controltemplate的一部分),它们可以动态地正确更新 我在这里错过了什么??以下是事件处理程序的代码: private void The

我已经创建了一个自定义控件,其中包含一个按钮。该按钮被设置为样式,以便容纳两行的网格,第一行是图像,第二行是文本块。我已经为自定义控件编写了一个事件处理程序。当鼠标进入对象的路径时,MouseEnter事件触发,我尝试更改TextBlock的FontSize和前景色,但是控件不会更新。相比之下,我尝试修改常规TextBlock的属性(不是自定义控件和controltemplate的一部分),它们可以动态地正确更新

我在这里错过了什么??以下是事件处理程序的代码:

private void ThemeButton_MouseEnter(object sender, MouseEventArgs e)
{
    InitializeProperties();

    TextElement.FontSize = 16;
    TextElement.Text = "new text";
    TextElement.Foreground = Brushes.Red;

    TextBlock element = MainWindow.FindChild<TextBlock>(MainWindow.StartWindow, "textField");
    element.Text = "new text for regular textblock";
    element.Foreground = Brushes.Red;
}
private void ThemeButton\u MouseEnter(对象发送器,MouseEventArgs e)
{
初始化属性();
TextElement.FontSize=16;
TextElement.Text=“新文本”;
TextElement.前台=画笔.Red;
TextBlock元素=mainfown.FindChild(mainfown.StartWindow,“textField”);
element.Text=“常规文本块的新文本”;
元素。前景=画笔。红色;
}

InitializeProperties是一种初始化TextElement(typeof TextBlock)和ImageElement(typeof Image)属性的方法。它们不是空的。这些属性只是常规的.NET属性。

哇……我的问题实际上是属性(TextElement和ImageElemenet)指向模板中的元素(自定义控件),而不是实际在窗口中呈现的元素

请记住,在搜索元素时,始终在渲染完成后启动搜索(即,当用户操作触发事件或类似事件时启动搜索),以便元素进入视觉树