gpt4 book ai didi

c# - 以编程方式从 WPF 中的代码中删除删除线文本装饰

转载 作者:行者123 更新时间:2023-11-30 13:32:07 24 4
gpt4 key购买 nike

我在 WPF 桌面应用程序中实现以下行为时遇到问题:

我从代码隐藏动态创建 TextBlocks 并将它们插入到 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]);
}

如有任何帮助,我们将不胜感激。

谢谢,伯恩德

最佳答案

我发现以下内容最适合我:

TextDecorationCollection decs = (TextDecorationCollection)theRTB.Selection.GetPropertyValue( Inline.TextDecorationsProperty );
if (decs.Contains(TextDecorations.Underline[0]))
{
TextDecorationCollection noUnder = new TextDecorationCollection(decs);
noUnder.Remove(TextDecorations.Underline[0]); //this is a bool, and could replace Contains above
theRTB.Selection.ApplyPropertyValue(Inline.TextDecorationsProperty, noUnder);
}

显然这是为了去除下划线装饰,但我想删除线也不会有什么不同。

关于c# - 以编程方式从 WPF 中的代码中删除删除线文本装饰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16480344/

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