【发布时间】:2017-07-21 20:08:25
【问题描述】:
我在 WPF 桌面应用程序中实现以下行为时遇到问题:
我从后面的代码动态创建 TextBlock 并将它们插入 StackPanel。到目前为止,这有效。当用户将鼠标移到 TextBlock 上时,应将删除线应用于 textblock,表示可以通过单击删除该项目。同样,这仍然有效。当鼠标离开 textblock 时,删除线将被移除,这里会抛出异常,说 IsFrozen 必须设置为 false 才能更改 TextDecorationCollection 对象。我无法弄清楚如何解决这个问题。
这是我的代码:
private void HandleAddedSecondaryDxMouseEnter(Object sender, MouseEventArgs e) {
TextBlock tbl = (TextBlock)sender;
tbl.TextDecorations = TextDecorations.Strikethrough;
}
private void HandleAddedSecondaryDxMouseLeave(Object sender, MouseEventArgs e) {
TextBlock tbl = (TextBlock)sender;
tbl.TextDecorations.Remove(tbl.TextDecorations[0]);
}
任何帮助将不胜感激。
谢谢, 伯恩德
【问题讨论】:
-
你可以设置成
null,tbl.TextDecorations = null; -
太好了,成功了!非常感谢!
-
如果上述评论符合您的要求,您可能需要回答并关闭此问题
-
我已经尝试过了,但我必须等待 8 小时才能回答我自己的问题 :(