我试图在运行时创建一个 WPF 控件,但我不知道如何让它忽略来自 App.xml 资源的样式。我尝试将样式设置为 null 并将 OverridesDefaultStyle 设置为 true 但没有成功。应用程序设置将前景设置为白色,我似乎无法明确将其设置为其他任何内容。
Label tb = new Label();
tb.OverridesDefaultStyle = true;
tb.Style = null;
tb.Foreground = new SolidColorBrush(Colors.Black);
this.Children.Add(tb);
Edit:由于某种原因,我永远无法让标签工作,但当我切换到文本框时,它工作得很好。
谢谢你的回复。
您所要做的就是设置Style
to null
阻止它继承。然后你可以设置Foreground
任何你喜欢的:
var tb = new TextBlock() { Text = "Hello" };
tb.Style = null;
tb.Foreground = Brushes.Blue;
this.Children.Add(tb);
如果这对你不起作用,我建议完全采取其他措施。
PS. Use Brushes.Black
而不是创建自己的SolidColorBrush
。不仅干净了,刷子也会被冻住。您的代码创建了一个未冻结的画笔,效率较低。您也可以通过致电自行冻结Freeze()
在刷子上。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)