FocusVisualStyleGloballyDisabled我想在我的WPF应用程序中全局禁用焦点矩形。对于单个控件,可以通过但如何将其应用于我的应用程序中的所有控件。当我申请FrameworkElement时没有任何反应。我需要的是“适用于类x和所有派生类”。提前致谢,Stefan看起来没有什么灵丹妙药:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/141c8bfa-f152-4f8a-aca0-3c3b5440d183根据http://msdn.microsoft.com/en-us/library/bb613567.aspx,你应该能够像这样设置全局焦点样式:我没有测试它,但我想这会有效地禁用整个应用程序的焦点矩形你清空了controltemplate(前提是你在app.xaml中包含了这个样式)。我知道这听起来很乏味,但您可能必须对所有其他控件类型分别执行相同的操作。制作列表并进行一些简单的查找/替换应该可以满足您的需要。我偶然发现了这个问题并提出了这个(真的不是很好但有效)解决方案:}publicstaticvoidInit(){//故意为空在我的MainWindow的构造函数中,我只调用FocusVisualStyleRemover.Init();它可能并不简单,但您可以编写一个函数来更改控件的现有样式。写好之后,就可以写一个递归改变每个元素样式的函数了。您可以使用OverrideMetadata:FrameworkElement.FocusVisualStyleProperty.OverrideMetadata(typeof(FrameworkElement),newFrameworkPropertyMetadata(null));您必须在创建任何元素之前调用它,Application.Startup事件可能是最好的地方。这只会影响使用FrameworkElement的焦点视觉样式的控件,而不会更改在代码或样式中覆盖它的控件。我还没有尝试使用Window类默认模板的FocusVisualStyle部分是AdornerDecorator。如果您重写窗口的默认模板以不包含AdornerDecorator,则所有控件上的FocusVisualStyle都不会显示。即使控件具有有效的FocusVisualStyle和模板集,它也不会在没有AdornerDecorator的情况下使用AdornerDecorator。一种简单的方法是将此样式包含在Application.Resources下的App.xaml文件中。以上就是C#学习教程:全局禁用所有FocusVisualStyle分享的内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
