ボタンを保持するカスタム コントロールを作成しました。ボタンは、2 行のグリッドを保持するようにスタイル設定されています。1 行目は画像、2 行目は TextBlock です。カスタム コントロールのイベント ハンドラーを作成しました。マウスがオブジェクトのパスに入ると、MouseEnter イベントが発生し、そこで TextBlock の FontSize と前景色を変更しようとしますが、コントロールは更新されません。対照的に、私は通常の TextBlock の (カスタム コントロールとコントロール テンプレートの一部ではない) プロパティを変更しようとしましたが、その場で正しく更新されました。
ここで何が欠けていますか?? イベント ハンドラのコードは次のとおりです。
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) プロパティを初期化するメソッド ID です。null ではありません。プロパティは、通常の .NET プロパティです。