繁体   English   中英

WPF自定义控件中的Cannont更新控件

[英]Cannont Update control in WPF custom control

我创建了一个自定义控件,其中包含一个按钮。 对按钮进行样式设置,以便保留具有两行的网格,第一行为图像,第二行为TextBlock。 我已经为自定义控件编写了一个事件处理程序。 当鼠标进入对象的路径时,将触发MouseEnter事件,在这里尝试更改TextBlock的FontSize和Foreground颜色,但是控件不会更新。 相比之下,我试图修改常规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;
}

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

哇...我的问题实际上是Properties(TextElement和ImageElemenet)指向模板(自定义控件)中的元素,而不是指向Window中实际呈现的元素...

请记住,在搜索元素时,请务必在渲染完成后开始搜索(即,当用户操作触发事件或类似事件时开始搜索),以使元素进入可视树!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM